Python OpenCV不断抓取视频的最后一帧
到目前为止,我能够抓取视频的最后一帧,在修改了之前的内容之后。 现在问题依然存在,它抓取最后一帧,从最后一帧开始,但之后什么都没有。图像显示在GUI上,但即使看起来应该更新,也不会更新。 我是python新手,所以任何帮助都会很棒 main.pyPython 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.
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分钟内还没有更新,所以我很确定它不会发生。谢谢你的建议。