Monday, March 10, 2014

The start of my flexible computer vision program.

Hello all,

My apologies for not posting for a while, I've been incredibly busy with finishing my thesis.

I wanted to blog about the new computer vision program I've been working on.  This program will hopefully help me develop computer vision algorithms faster and it could be a good teaching tool to demonstrate how computer vision works.

This program is designed to give a flexible interface to OpenCV using QT as a user interface.  My motivation behind this is to create a program that can let me easily create a processing pipeline then modify parameters of that pipeline.
Some key features of this are:

Selecting multiple sources.
Storing a history of all filters applied with settings.
Allows you to create a processing pipeline and then view the results with different input sources.
Save the pipeline to a text file and which can then be loaded by a command line program to execute.

So here's an early example of usage:

Main Window:



Select image source: 



After images are selected:


Once the sources images are loaded, you can create a processing pipeline with different filters.  A temporary image is shown with the current filter settings, as settings are changed you can view in real time the changes made.  Once you are satisfied you can commit the changes to the filter history.
After you've built up some operations, you can then see what the operations look like on other images simply by clicking on a different source image.

This is still the very early stages of development, I've only had two days to work on this so far.  But I'm very excited for how it will make image processing easier for me in the future.
My goal is to add a section for extracting features from a processed image and then perform machine learning on those statistics.  I also plan on adding an image labeling section to make this the go to application for performing learning.