我的目标是确定两个完全相同的视频之间的相似性。我的方法有点天真,即逐帧比较它们,看看两帧是否完全匹配。我正在使用以下python代码:
import cv2
import numpy as np
capture = cv2.VideoCapture("video.wmv")
capture2 = cv2.VideoCapture("video.wmv")
counter = 0
while True:
f, frame = capture.read()
f2, frame2 = capture2.read()
frame = cv2.GaussianBlur(frame,(15,15),0)
frame2 = cv2.GaussianBlur(frame2, (15, 15), 0)
try:
res = frame - frame2
if(np.count_nonzero(res) > 0 ):
counter += 1
else: continue
except:
print(counter)
我视频中的总帧数约为600K。代码运行几乎20K帧,精确匹配,计数器保持为零(即精确帧匹配),但在20K帧之后,它开始为所有帧返回以下异常
unsupported operand type(s) for -: 'NoneType' and 'NoneType'
从异常中我了解到它没有读取任何帧,这就是返回NonType的原因。请指导我比较视频的方法是否正确(我知道这不是有效的方式)。也是为什么我收到此错误?