Transwiki:Motion Tracking using Java

Motion Tracking using Java is the process of locating a moving object (or several ones) in time. An algorithm analyses the video frames and outputs the location of moving targets within the video frame.

OpenCV
It’s a relatively easy thing for computers to “see” video, but “computer vision” goes a step further, applying a wide range of techniques by which computers can begin to understand and process the content of a video input. These techniques tend toward the primitive, but they can also produce aesthetically beautiful results. The best place to start with computer vision has long been the standard library, OpenCV. A free library developed by Intel and with ongoing use in a variety of applications, OpenCV is a terrific, C/C++-based tool not just for things like motion tracking, but video processing in general. OpenCV gets a lot of support in the C++-based OpenFrameWorks, but that doesn’t mean Java and Processing have to be left out of the fun. (In fact, I’d still recommend starting with Processing for OpenCV, because other tasks remain easier in Java.)

JMyron
JMyron (aka WebcamXtra) is an external library for Processing that allows image manipulation without having to hard code everything. This is great because we can extend what we saw in the Video Library tutorial and add other aspects to it like motion tracking and color tracking. To use JMyron, you have to download the JAR and put them in the path/to/Processing/libraries folder. You must then import the library in each Processing sketch where JMyron objects will be used.

JMTF
The Java Motion Tracking Framework (JMTF) is a modular framework for detecting and tracking motion in prerecorded image sequences. Unlike others, it is pure java and requires therefore no native libraries. The JMTF is free software and available under a BSD license.

Using JMF
The Java Media Framework API (JMF) enables audio, video and other time-based media to be added to applications and applets built on Java technology. This optional package, which can capture, playback, stream, and transcode multiple media formats, extends the Java 2 Platform, Standard Edition (J2SE) for multimedia developers by providing a powerful toolkit to develop scalable, cross-platform technology. Java with JMF can be used to implement a motion detection engine.