Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python OpenCV不断抓取视频的最后一帧_Python_Opencv - Fatal编程技术网

Python OpenCV不断抓取视频的最后一帧

Python OpenCV不断抓取视频的最后一帧,python,opencv,Python,Opencv,到目前为止,我能够抓取视频的最后一帧,在修改了之前的内容之后。 现在问题依然存在,它抓取最后一帧,从最后一帧开始,但之后什么都没有。图像显示在GUI上,但即使看起来应该更新,也不会更新。 我是python新手,所以任何帮助都会很棒 main.py import cv2 import numpy as np import frame_counter path = 'video.flv' cap = cv2.VideoCapture(path) template = cv2.imread('2.

到目前为止,我能够抓取视频的最后一帧,在修改了之前的内容之后。 现在问题依然存在,它抓取最后一帧,从最后一帧开始,但之后什么都没有。图像显示在GUI上,但即使看起来应该更新,也不会更新。 我是python新手,所以任何帮助都会很棒

main.py

import cv2
import numpy as np
import frame_counter

path = 'video.flv'
cap = cv2.VideoCapture(path)

template = cv2.imread('2.png',0)
w, h = template.shape[::-1]

while 1:

length = frame_counter.count(path)
print(length)
cap.set(1,length);

ret, img = cap.read()
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

print("Went through")

res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
threshold = 0.9
loc = np.where( res >= threshold)

for pt in zip(*loc[::-1]):
    cv2.rectangle(img, pt, (pt[0] + w, pt[1] + h), (0,255,255), 2)

cv2.imshow('Detected',img)
k = cv2.waitKey(30) & 0xff
if k == 27:
    break

cap.release()
cv2.destroyAllWindows()
框架_计数器.py

# import the necessary packages
from imutils.video import count_frames

def count(path):

# count the total number of frames in the video file
total = count_frames(path, False)
return total

尝试设置当前帧位置:
capture=cv2.VideoCapture(path)count=capture.get(cv2.CAP\u PROP\u frame\u count)capture.set(cv2.CAP\u PROP\u POS\u FRAMES,count-1)
我稍后会尝试一下,谢谢你。嗯,它仍然不会更新图像。我知道OpenCV处理图像的速度很慢,因为它分析了我扔给它的所有东西,但它在2分钟内还没有更新,所以我很确定它不会发生。谢谢你的建议。