I have a project in which we (me and my student) will develop a system for robot. In this robot we have a camera that capture.
My question is how to detect motions, movements. Is there a solution?? Which technics and tools to use ?? Which language to use (possible for Java for example) ??
Thanks in advance.
Best 开发者_Python百科regards. Ali
Consider using OpenCV:
http://opencv.org
It has a lot of useful vision algorithms built in, and supports, C, C++ and Python, as well as GPU functionality.
I will suggest you Microsoft Visual Studio wich is an integrated development environment and c# programming language. Emgu CV library wich is a cross platform .Net wrapper to the OpenCV image processing library. A simple method from a static position is this:
Convert a single frame to grayscale. Convert a new frames from real time into grayscale. Make abstractions between the first frame and new frame from real time. The result of this is a third, new frame comprised of the differences between the first two. Use erosion and thresholding for that to get a frame with white representing the motioned section and black representing the rest of the space.
If the objects you attempt to track have a distinct color, you should be able to target them adequately.
One way to accomplish this is to choose an appropriate space for color as RGB space. Keep in mind this may be too sensitive, even to small illumination variance. (It really depends on the objects you want to track and tracking scenario.)
You can use OpenCV
Here you can find a C++ tutorial: http://blog.cedric.ws/opencv-simple-motion-detection
using two cameras instead of one could be useful in your project, for detecting depth in the image and real distance of a motion (in a perspective vision)
Stereoscopic depth rendition
Real-time detection of independent motion using stereo
精彩评论