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()

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值