Writing a program to detect motion in a still video.

I want to write a program that could analyze a video and differences within the video. The scenario would be: say I am video taping a fish in a tank that the fish is not in frame. I want the program to be able to tell me when the fish crossed the camera and at what time it crossed. Is something like this possible? Thanks for any help as I am new to programming and just trying to get this done for a simple project.
Thanks Steve

Answers (1)

If you have the Computer Vision System Toolbox, you can use the vision.ForegroundDetector object.

3 Comments

Would this still work if say the camera wasn't still? Say I had a long fish tank and I moved the camera down the tank which had the same background. Could it still detect the fish when the camera scrolled over? What I really meant in the first question is not to detect motion but just a difference in the picture. Sorry if this is redundant. Thanks Steve
I'm not sure, that depends on how constant the background is. My guess would be no. It's not meant to work with a moving camera.
If the background is uniform and the camera and fish are both moving, then you can't tell the speed with respect to the background, only the relative speed of the fish to the camera. If you just want to detect a fish with a smooth background and don't care about measuring it's speed, then that might be able to be done depending on how easy it is to distinguish the fish from the background.

Sign in to comment.

Categories

Asked:

on 2 Apr 2014

Commented:

on 2 Apr 2014

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!