Mar 18, 2009

My project for Computer Vision is decided.

Yesterday professor assented my project so that I'm going to implement this impressive paper.

First time, I thought I can try JMF at this chance, but I found it doesn't support Mac yet. Therefore I decided to use OpenCV with Eclipse and GoogleTest.

Anybody can find my use cases and my source code from Google Code.

Goolge Unit Testing Framework for C++

I had hard time to find a good unit testing library for C++ not for Java; Java already have a good one, JUnit.

First name we can came up with for unit testing tool for C++ is CUnit or CppUnit. There are several unit testing libraries for C++. However, most of them are complex to use and doesn't get updated anymore.

I planned to use OpenCV with C++ in Mac, so that I wanted to find a good unit testing tools. I'm kind of get used to JUnit so much. Now I can hardly image I code without unit testing.

First time, I tried CUTE. I found it is pretty complex and I cannot find any good document from internet; people don't use this. And the last update in its Wiki is 2 years ago. I felt like it is abandond.

Second, I tried CppUnit. I found it is also complex and outdated; last update is made 3 years ago.

Today I found a good one, GoogleTest. Last update is Dec 11 2008. And it seems pretty handy. One thing I mind is it doesn't show green/red bar. I guess it is possible to draw some visual bars by parsing XML file that is generated by GoogleTest, but I need to read more detail to figure out how it works.

I strongly believe most of C++ programmers still don't understand how important and strong unit testing techniques are. Otherwise, it cannot explain why they are all outdated.

Mar 17, 2009

Computer Vision Assignment 2

My professor asked us to post our assignment on web site, so that I'm posting it here.

The instruction for the 2nd assignment is here.
  1. (15p) Computing edges for a background image and for an image with a human in it.
  2. (10p) Subtracting edge images to create a difference image and classifying edges in the difference image.
  3. (10p) Connected component analysis to identify the human in the image.
For the 1st instruction, I computed edges of background for each color channel (you can enlarge it by clicking the image):Each blue image consists of arrows that indicate direction of each edge:For the 2nd instruction, I have classified three edges: background, occluding(foreground), and occluded edges.For the 3rd instruction, I have drawn a box for the human.
You can find my MatLab program here.