Recently I have created a Python openCV „frontend“ which allows a creation of computer vision algorithms by simply writing down their comma separated names. It creates a nice square widget chain where every „step“ algorithm has its own picture and info string. Interested? Keep reading!
Example
So for example I have 4 cameras and i wan to create a contour of green object in scene. So i will write into the Chain textInput:
source0, resize, gauss, detect green, gauss, threshold, contour
for every source. The GUI of IPAV would then look like this:
The step widgets are ordered retrospectively so in the low right there is the first widget with original captured image of sourc0.
Individual widgets can be narrowed and there is info text available for each of them. For example on the source widget there is a resolution of the captured image, in the contour find step there is number of contours found.
Showcase
In this video I show a little older version of IPAV. I will create Otsu thresholding chain, and later sobel horizontal edge filter which shows how the IPAV displays float not only positive images.
The video was created in ActivePresenter btw.
Program structure
As I said the program is written in Python 3.4 with Kivy GUI library and OpenCV 3.0 python wrappers. Its multithreaded (thread 0 = GUI, thread 1 = image capturing, thread 2 = image processing).
Article
I have written a small article about the program for a school „conference“ EEICT this year. It is sitting on pages 431-435.
Further development
It is still in a development stage, but I am planning to have the code opensourced when it is ready. For now you can mail me suggestions 😉
Future work
- Threading for individual sub chains
- for example for every source one image processing thread
- that means – non daisy-chain structure
- terminal like input
- with tab-suggestions, command history
- individual step widget improvements
- python snippets
- graph info
- GUI widgets for settings step algorithm parameters
- e.g. slider for thresholding
- … many more