python - OpenCV在视频中查找卡住的帧

标签 python python-3.x opencv

我一直在尝试查看库中的视频,并使用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秒的冻结帧的最佳方法是什么?
非常感谢。

最佳答案

要计算两个帧Frame1Frame2之间的绝对差,您可以使用以下代码:

Diff=np.sum(np.abs(Frame1-Frame2))
npnumpy的缩写,您应该首先通过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/

相关文章:

python - 导入 TensorFlow 会停止运行 python 程序

python - 如何仅在字符串的开头/结尾替换非字母数字字符?

java - OpenCV 错误 : Assertion failed (scn == 3 || scn == 4) while using Watershed in OpenCV android sdk

python - 使用 python 文件启动 ipython notebook

python - 在不同的 shell 窗口中启动 2 个并行进程

python - 如何在浏览器中显示 linux 日志文件中的行

python-3.x - 去除图像圆形区域之外的颜色

python - Flask 被 OpenCV 卡住

c++ - OpenCV-如何将RGB图像投影到日志(R/G)〜日志(B/G)空间?

python - 如何使用面向对象的 OpenCV