Python [OpenCV Videocapture]为什么不';不重新阅读?
代码显示正确的图像,但在图像“帧”回放后显示错误消息。所以我无法获得“res”图像 它只显示“无对象文件”错误消息。 我应该修复哪个部分才能使它工作Python [OpenCV Videocapture]为什么不';不重新阅读?,python,numpy,opencv,image-processing,Python,Numpy,Opencv,Image Processing,代码显示正确的图像,但在图像“帧”回放后显示错误消息。所以我无法获得“res”图像 它只显示“无对象文件”错误消息。 我应该修复哪个部分才能使它工作 import cv2 import numpy as np cap = cv2.VideoCapture('ObjectTrack.mp4') while cap.isOpened(): ret, frame = cap.read() if not ret: print("No Object
import cv2
import numpy as np
cap = cv2.VideoCapture('ObjectTrack.mp4')
while cap.isOpened():
ret, frame = cap.read()
if not ret:
print("No Object Files")
break
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
lower_orange = np.array([100,200,200])
upper_orange = np.array([140,255,255])
mask_orange = cv2.inRange(hsv, lower_orange, upper_orange)
res = cv2.bitwise_and(frame,frame,mask = mask_orange)
cv2.imshow('frame',frame)
cv2.imshow('res',res)
if cv2.waitKey(50) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
错误背后的原因是帧为None(Null)。如果
if not ret:
print("No Object Files")
break
然后退出while
循环(while cap.isOpened():…
)
只要更改缩进和if
条件即可
像这样:
while cap.isOpened():
ret, frame = cap.read()
if ret: # if frame is not None:
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
lower_orange = np.array([100, 200, 200])
upper_orange = np.array([140, 255, 255])
mask_orange = cv2.inRange(hsv, lower_orange, upper_orange)
res = cv2.bitwise_and(frame, frame, mask=mask_orange)
cv2.imshow('frame', frame)
cv2.imshow('res', res)
if cv2.waitKey(50) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
并进一步讨论了原因