dividing video into scenes
4 views (last 30 days)
Show older comments
hi everyone the attached file is matlab code for dividing AVI movie into scenes. unfortunately, the accuracy of this
program is low. So, is there any alternative matlab program?
Regards
Majid
0 Comments
Answers (4)
Image Analyst
on 7 Jul 2018
It's hard to define what a scene is. If the camera smoothly turns around 180 degrees is that a new scene?
See my attached example where I take the mean of all frames. You could examine the means and try to find abrupt changes in the means which could indicate a change in scene. Though it could also be the same scene where someone just put their hand over the lens for a short time.
7 Comments
Image Analyst
on 8 Jul 2018
Look at the plot of gray levels in the upper left axes. See how the mean abruptly jumps at certain frames? What do you think might cause that?
That jump would be caused when the image changes drastically from the prior frame, in other words, it would happen at an abrupt scene change. Does that make sense?
Now, look at the magnitude of the gray level jumps when you're at one of these jumps. It looks like it changes about 20 gray levels or more. When it changes less, the scene is just undergoing normal, slow changes in scenery (like the camera slowly panning) but not a complete scene change. Another way you could do it is to look at the binary image and count the white pixels -- the area fraction. A large area fractions (lots of differences showing up in white) would indicate a scene change. This would also indicate a scene change if the image changed but the histogram didn't, like the camera flipped upside down, or a person walked from one side of the scene to the other. You'd have to decide if that constituted a scene change or not. You could even have 2 or 3 scene change metrics and have them vote as to whether a genuine scene change occurred.
Majid Al-Sirafi
on 7 Jul 2018
1 Comment
Image Analyst
on 8 Jul 2018
No. I think you should plot the difference from frame to frame as a function of frame and look at the frames where you know for a fact that the scene has changed. Those differences should be about right, and all the other differences will probably be a lot less. So set the threshold about half way between the known scene change difference, and a typical non-changing scene difference.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!