使用OpenCV和Python比较视频帧

3
我一直在尝试使用opencv videocapture()和Python从视频帧中获取视频并进行比较。
我提取了第一帧视频,称之为frame1,当我保存视频并再次提取同一第一帧时,称之为frame2。
比较frame1和frame2会返回false,但我预期结果应该是true。
我还将帧保存为png(无损格式)图像,并保存视频并再次提取同一第一帧。但它们不匹配?如何在处理opencv视频时获得每次相同的帧? Python

1
请发一些代码;这将有助于我们回答。 - Nathan majicvr.com
不用担心代码,@frank,问题在于使用opencv加载时帧不同。第一次是一个,在另一个视频中相同的帧是不同的。 - poda_badu
你确定它们不是同一个框架吗?你看过它们了吗,还是只是用代码比较这两个框架? - Nathan majicvr.com
2个回答

3
我猜你将框架保存为PNG文件,该文件包含了文件编码的日期和时间等其他信息,因此如果在shell中使用diffcmp命令,这些文件将看起来不同。
解决方案要么是使用不编码日期和时间的格式,例如PPM,要么使用像ImageMagick这样的工具,允许你生成用于比较的哈希值,但仅限于像素数据而非元数据。
identify -format %# someImage.png
e74164f4bab2dd8f7f612f8d2d77df17106bac77b9566aa888d31499e9cf8564

更多讨论请查看这里


0

我不知道为什么它不起作用,但为了解决您的问题,我建议实现一个新的函数,即使每个像素颜色值存在微小差异,也能返回true。

使用适当的阈值,您应该能够排除假负。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接