VideoPipe – A visual tool to process video in realtime

What is it ? VideoPipe is an application that allows a user to visually connect and manipulate videoprocessing modules to create a realtime procedural and configurable processing pipeline for video streams. It […]

What is it ?

VideoPipe is an application that allows a user to visually connect and manipulate videoprocessing modules to create a realtime procedural and configurable processing pipeline for video streams. It allows the user to experiment in an intuitive way with processing modules and tweak their parameters while the system is running, making the development and prototyping of video processing pipelines faster and easier.

Who is it for ?

After having used the OpenCV library extensively for the various image processing applications that I have been involved in (robot stuff, exhibition stuff, fun stuff) I realized that a lot of my time was being spent in visualizing the various steps of my processing “pipeline” and often bugs and errors would elude me for the longest time because my process wasn’t as transparent and configurable as it could have been. That is part of my inspiration to make this software, to make prototyping videoprocessing applications easier.

Another motivation was to open up the very powerful library of OpenCV (and possibly others) to people that are curious and enthusiastic about playing with real-time video processing but might not have access to it for any reason or other. Hopefully it will help people get started what I think is one of the more rewarding programming tasks because of its visual nature and the quick feedback cycle you can experience from playing with it.

Where do I get it ?

The application itself is hosted on SourceForge and you can download it from there:

http://sourceforge.net/projects/videopipeapp/files/

If you experience any trouble with the application or have feature requests, please post them in the discussions on the sourceforge page.

Remember to check out the credits at the bottom of the page to learn about the awesome libraries that make this application possible.

How does it work ?

Because of the highly visual nature of this application I think video tutorials are by far the best way to describe and showcase it’s functionality, enjoy!

Basic functionality

A quick tutorial that goes through the basics of the application, how to add modules, connect them, remove them, save a configuration and load a previously saved configuration. It also describes the visual features of the application as well as showcasing just a few of the modules.

 

Module demo

In this tutorial I simply demonstrate the functionality of various modules that have already been implemented and are included in the application.

Input/output:

Object detection:

Color segmentation:

 

Connect to Processing

This tutorial shows how to easily connect VideoPipe with the Processing programming language and editor so that users of Processing can enjoy the powerful videoprocessing capabilities of VideoPipe with the flexibility of the Pocessing/Java language to further manipulate the video.

 

Using Python scripts

This tutorial demonstrates how to use Python scripts to quickly prototype processing modules and even edit them with the application running and see the results of changing lines of code instantly in the application.

 

Writing your own modules

This tutorial shows how you can make your own modules and import them into the VideoPipe application by simply making a Java class that extends a basic Module class, compile and jar the bytecode up and drop the jar in a certain folder.

Currently working on this one…

Credits

This application mostly provides a framework to work with images but relies heavily on external libraries and projects for its functionality.

About Siggi