2011-06-09 394 views
1

我想从视频中提取关键帧。 现在我正在使用一个循环来比较一个帧的样本和前一帧的样本,但是这种方法不太好。Java - 从视频中提取关键帧

让我解释一下:我有一个监控录像,我必须选择有变化的帧(出现一个人,出现另一个人,一个人走开,等)现在我使用这个类比较帧:Java Image Comparison/Motion Detection Class

你知道别的办法吗?

谢谢!

回答

4

我不知道你所谓的“关键帧”。你的方法将使你才发现,场景转换,但是这是不是通常是通过在视频解码的“关键帧”的意思是:这是相当平常的I-frame(可自行解码的帧,不参照其它帧) 。 (经常场景转换是关键帧,但不一定是其他方式)。这个概念当然与视频编解码器相关,但是大多数现代编解码器(来自MPEG-1)实现了这个概念。但请注意,这与原始照片本身无关,但与编解码器无关。

如果要检测这些关键帧(I帧),那么你必须看看你的视频解码API里面,看它是否让你得到这个信息。看来,xuggle为您提供了IVideoPicture.getPictureType()方法,但我没有使用它。

+0

感谢您的解释,但我正在寻找一种方法来寻找场景转换,让我解释一下: 我有一个监控视频,我必须选择有变化的帧(一个人出现,另一个人出现,一个人走开,等) 现在,我使用这个类来比较帧:http://mindmeat.blogspot.com/2008/07/java-image-comparison.html – 2011-06-11 10:25:00

+0

你要要在实时或批处理模式下执行?你为什么坐着帽子“这种方法不太好”? – leonbloy 2011-06-11 12:59:47

+0

我想在批处理模式下执行此操作。 这种方法不是很好,因为如果我的视频显示的是正在运行的人,则此方法会提取视频的每一帧,因为它在两帧之间找到太多差异。 这是因为我正在寻找其他方法来进行关键帧提取。 – 2011-06-12 16:19:46