我试图在使用OpenCV的视频中检测(摄影)Flash。在opencv中获取CV_CAP_PROP_POS_FRAMES的视频帧
我检测到发生闪光的帧(平均亮度高于阈值),现在我想获得帧号。
我尝试使用CV_CAP_PROP_POS_FRAMES from the OpenCV docs没有任何成功。
import numpy as np
import cv2
cap = cv2.VideoCapture('file.MOV')
while(cap.isOpened()):
ret, frame = cap.read()
BW = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
h,s,v = cv2.split(hsv)
average = np.average(v) #computes the average brightness
if average > 200: #flash is detected
cv2.imshow('frame',BW)
frameid = cap.get(CV_CAP_PROP_POS_FRAMES) # <--- this line does not work
print(frameid)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
任何提示?
非常感谢你很多,我按照你的建议添加了一个变量。 – user6721454