【发布时间】:2016-10-24 13:14:55
【问题描述】:
了解视频每一帧的开始时间非常关键。 我需要使用下面的 matlab 代码手动确定起点(例如这里的 848):
v = VideoReader('video1.avi','CurrentTime',848);
while hasFrame(v)
video_frame = readFrame(v);
counter=counter+1;
if counter==1
imshow(video_frame)
imhist(video_frame(:,:,1))
end
end
我想要的是通过使用直方图将某些视频帧与其他视频帧区分开来。最后,我的目标是达到杰出帧的确切显示时间。
某些帧的直方图大小与上一个不同,您知道原因吗?
difference=[difference sum(abs(histcounts(video_frame)-histcounts(lastframe)))];
由于我已经删除了不同直方图大小的帧,但它会导致丢失一些帧。
【问题讨论】:
-
只是为了澄清问题:您有一段视频显示某些内容(例如黑屏)一段时间,然后发生剪辑,可以使用直方图找到并且您希望自动找到它,对?你能给一个示例视频文件吗?这将非常有帮助
-
是的。不幸的是,由于某些版权问题,我无法分享视频。视频由第一个场景中的人脸和背景是黑色的,在第二个场景中有一些文字和背景是深白色的,最后第三个场景是空白的,背景也是深白色的。你能回答一下随机视频吗?