使用opencv python比较两个精确的视频

时间:2017-03-20 11:11:23

标签: python opencv image-processing video video-processing

我的目标是确定两个完全相同的视频之间的相似性。我的方法有点天真,即逐帧比较它们,看看两帧是否完全匹配。我正在使用以下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的原因。请指导我比较视频的方法是否正确(我知道这不是有效的方式)。也是为什么我收到此错误?

0 个答案:

没有答案