我一直在尝试查看库中的视频,并使用python和OpenCV
检测冻结的帧。
有一个Stack Overflow question给出了答案,但是我不太理解。答案如下:
Frozen frames: calculate absolute difference over HSV/RGB per every pixel in two consecutive frames np.arrays and determine max allowed diff that is valid for detecting frozen frames.
检测视频中大于3秒的冻结帧的最佳方法是什么?
非常感谢。
最佳答案
要计算两个帧Frame1
和Frame2
之间的绝对差,您可以使用以下代码:
Diff=np.sum(np.abs(Frame1-Frame2))
np
是numpy
的缩写,您应该首先通过import numpy as np
导入np.abs
正在计算差异Frame1-Frame2
中每个像素的绝对值,而np.sum
显然是对所有值求和,因此最终得到一个值。至于将其扩展为检测视频是否冻结3秒钟,您应该对3秒钟范围内的每两个“连续”图像进行上述计算。或计算当前帧与当前时间(3秒)之间的差异。像这样:
time1=1000 #This is 1st second
time2=4000 #This is the 4th second
cap.set(cv.CV_CAP_PROP_POS_MSEC,time1)
ret, Frame1= cap.read()
cap.set(cv.CV_CAP_PROP_POS_MSEC,time2)
ret, Frame2= cap.read()
cap
是视频捕获。
关于python - OpenCV在视频中查找卡住的帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62725079/