VisualODF

Filed Under » Uncategorized
Permalink » 08/17/2006: VisualODF

Quick links to the documentation for VisualODF: the html version or pdf version.  The project download : VisualODF Project .

Now for an introduction!  I recently worked on a project for the University that I received my Masters degree from called “VisualODF” (my fancy-pants name for it, anyway - this wasn’t related to my thesis).  It is a bunch of classes that demonstrate the following:

- How to open video files (avi, mpeg, etc) and grab screen shots in a QT class, the “frameServer”

- How to interface the frameServer with an image processing algorithm

- How to interface the image processing algorithm with a TCAS-II type display, as well as other custom display widgets

- How to use signals and slots in QT4

- How to create custom widgets in QT4

- How to create custom widget plugins for QT Designer

- How to convert data in a SDL_Overlay from YUV colorspace to RGB colorspace

- How to display a SDL window inside a QT window

The purpose of these classes was to put together a skeleton that other students could use to actually implement an algorithm that detects obstacles in the context of camera mounted on a UAV. Then the obstacle information should be displayed in a way that the UAV controller can easily understand (custom display widgets). The TCAS-II type widget that I made depends on knowledge of the position of the obstacles relative to the aircraft for display, and a second widget (”pieDisplay”) only relies on knowledge of the relative angle of the obstacle with the aircraft and the vector of its heading.

I think that the most useful things from this project (that other people might be interested in) are:

- The TCAS-II widget

- The QT class (based on ffplay and the ffmpeg libraries) that opens and plays videos

- The YUV to RGB conversion

- The code that shows how and where to do screen grabs of the playing video

The TCAS-II widget looks like this:

TCAS-II Widget for QT4

It displays threats according to the TCAS-II specs (as far as the coloring, arrows, etc) and has a really simple interface. You can add an unlimited number of threats to the widget and easily delete them (they are kept in a std::list and each has its own unique key). It does not, however, know anything about latitude/longitude or the like : it only uses x,y coordinates at the moment. So it could, of course, use some improvement.

The documentation for the VisualODF classes are located here: html version or pdf version. The classes themselves can be downloaded here : VisualODF Project

I welcome any comments as well : rob _at_ heavygravity _dot_ com.


Share this post!
del.icio.us:VisualODFdigg:VisualODFspurl:VisualODFwists:VisualODFsimpy:VisualODFnewsvine:VisualODFblinklist:VisualODFfurl:VisualODFreddit:VisualODFfark:VisualODFblogmarks:VisualODFY!:VisualODFsmarking:VisualODFmagnolia:VisualODFsegnalo:VisualODF



Everything here copyright rob russell, heavygravity.com.