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
有关使用opencv读取视频的问题_Opencv - Fatal编程技术网

有关使用opencv读取视频的问题

有关使用opencv读取视频的问题,opencv,Opencv,在这段代码中,它将整个视频显示为一个帧,但最后它也会在最后一帧返回无 cap = cv2.VideoCapture("demo.mp4") while(cap.isOpened()): status, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2_imshow(gray) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.r

在这段代码中,它将整个视频显示为一个帧,但最后它也会在最后一帧返回无

cap = cv2.VideoCapture("demo.mp4")
while(cap.isOpened()):
  status, frame = cap.read()
  gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  cv2_imshow(gray)
  if cv2.waitKey(1) & 0xFF == ord('q'):
    break

cap.release()
cv2.destroyAllWindows()



error: OpenCV(4.1.2) /io/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'

这显示为一个错误

这可以通过如下方式稍微修改代码来解决,即确保框架不为空:

cap = cv2.VideoCapture("demo.mp4")
while(cap.isOpened()):
  status, frame = cap.read()
  if status:
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2_imshow(gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
      break
  else:
    break

cap.release()
cv2.destroyAllWindows()

谢谢@ashwinjoseph