Code Monkey home page Code Monkey logo

image-processing's Introduction

Image Processing application

By Ben Meadows and Toke Høiland-Jørgensen

This application is a project assignment for the COMPSCI773 course, semester 1 2012, University of Auckland.

The application lives in the code/ subdirectory and is written in C++ using the Qt and OpenCV libraries. The report/ subdirectory contains the LaTeX source for the accompanying report.

So far the application does the following:

  • Image segmentation - simple thresholding and split and merge segmentation (the latter is not working very well, see the report).

  • Feature point extraction - an implementation of the SURF algorithm, partly based on the OpenSURF implementation. The application also provides an interface to run the OpenSURF and OpenCV SURF implementations.

  • Camera calibration - obtaining rotation and translation matrices from calibration images using Tsai's method, and testing the results via backprojection.

  • Distortion removal - removing distortion so straight lines stay straight. The parameters of the lens distortion model are calculated and a corrected form of the input image is output.

Workings of the application

The program is written in C++ using the Qt and OpenCV libraries. The application consists of a Qt-based GUI that allows the user to load images, select between various image processors, select parameters and peruse the results of the processing by zooming and panning on the output image. Furthermore, it is possible to select points of interest (POIs) by double clicking on the image, which can be used to select points for the calibration algorithm. The GUI also has a log output window for textual output from the algorithms.

Each processor is implemented as a class that specifies which parameters are available for this processor (the parameters can be set by the user with the help of the QPropertyEditor library), and does the actual processing. The processing is done in a separate thread, to keep the interface responsive, and make it possible for the user to cancel a long-running processor.

Installation

See the INSTALL file in the code/ subdirectory.

Usage

See the 'HOW_TO_USE' file in this directory.

image-processing's People

Contributors

bmeadows avatar tohojo avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.