cvtColor() error? "cv2.error: \opencv\modules\imgpr\src\color.cpp

cap = cv2.VideoCapture('Flight.mp4')
ret, frame = cap.read()
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)

写了段代码发现cv2.cvtColor这块儿总是提示出错,首先潜意识认为是opencv2,opencv3,opencv4之间的区别,函数问题,看了下文档没有发现问题。

网上看下下,大部分都是介绍说是通道问题(什么鬼),这里咋会有通道问题呢。。。。。。

安装肯定也是没有问题,调试下每步的变量数据也是没有问题的,后来查了很多资料发现是因为缺少安全性检测,读取的某些帧可能是空得导致这个问题出现。联想到之前,如果使用OpenCV读取照片路径错误也会类似的行为提示。

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(cap.isOpened()):  # check !
    # capture frame-by-frame
    ret, frame = cap.read()

    if ret: # check ! (some webcam's need a "warmup")
        # our operation on frame come here
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

        # Display the resulting frame
        cv2.imshow('frame', gray)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
# When everything is done release the capture
cap.release()
cv2.destroyAllWindows()

 

你可能感兴趣的:(cvtColor() error? "cv2.error: \opencv\modules\imgpr\src\color.cpp)