I’m back after a long break. Ever since, I finished ma placement I was quote up with some projects and never had time to make post. Anyway this marks the start of another huge project in ma undergraduate studies. Yes, this is all bout getting wired for ma final year project.
The Project falls into the main stream of HCI (Human Computer Interaction) which will also involve a fair bit of wireless communication and motion sensing. But the first part of the project is to control a PC with hand and to provide support for all desktop applications.
The idea is to use a web cam and track hand movements and then define various methods for simulating all possible mouse events with a set of hand gestures. And going a step further, it is also planned to provide a drawing pad kind of an application where the user can draw various symbols and directly execute keyboard shortcuts without having to press any key (or key combination) on the keyboard.
So for the first part it will involve a lot of image processing and I’ll be using OpenCV for it. I chose OpenCV because it is open source and provides ample support for motion tracking. And since it’s C/C++ based it’s easy for me to get started with it as well.
I initially wanted to setup Visual Studio (2008) and configure OpenCV on it. But I failed badly on my Vista. Though it got installed alright, I couldn’t initiate a c++ project owing to a problem in launching the wizard for it. Anyway this was a known issue and was caused due to a permission issue with one of the registry keys associated with Visual Studio.
After a bit of digging I found a nice light weight open source IDE which also supports C/C++ development. After mapping it with the compiler(MinGW) and pointing OpenCV libraries I was able to code ma hello world in a flash.
The IDE now I’m using is Dev C++ and works wonderfully well with MinGW. If you are interested you can follow this tutorial which I also followed,
And if you are using the latest version of OpenCV make sure you don’t include -lcvcam to the linker command line. And the tutorial assumes that you have already setup MinGW if that’s not the case you may visit,
Once you finish installing MinGW, you will also require to add MinGW bin to your path variable. Hope this will be useful if you are a windows vista user wanting to kick start with OpenCV image processing library.
After playing around with some tutorials and samples code I was able detect a moving object and bind the mouse pointer to the moving object but this looks very unstable at the moment. :)
Above I have used color space conversion, Contours finding and Edge Detection. And now I’m working on template matching. Hope when it’s combined with Template Matching it can produce better results. And make it a lot stable. Below I also share a screen shot of template matching (performed on an image). I’m yet to apply it on a video. :)