当前位置:   article > 正文

【无标题】python之cv2.VideoCapture()用电脑自带摄像头捕获画面失败ret一直返回False解决方案。_opencv(4.5.5) d:\build\opencv\opencv-4.5.5\modules

opencv(4.5.5) d:\build\opencv\opencv-4.5.5\modules\imgproc\src\color.cpp:182
  1. import cv2
  2. import numpy as np
  3. cap = cv2.VideoCapture(0)
  4. while(1):
  5. ret,frame = cap.read()
  6. gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
  7. cv2.imshow('frame',gray)
  8. press_key = cv2.waitKey(1)
  9. if press_key == 27:
  10. break
  11. cap.release()
  12. cv2.destroyAllWindows()

程序运行时,视频头能正常打开,但是报错:

cv2.error: OpenCV(4.5.5) D:\Build\OpenCV\opencv-4.5.5\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

_src empty提示获取捕获的摄像头数据为空,书本中或者是网络上一直都说电脑自带摄像头默认ID为0,但是在ID为0的前提下,我在网上找了三四天有提示摄像头权限未开启、系统环境不正确,但更改这些操作后仍不能解决上述报错。

后来才想到有没可能摄像头默认ID是0,但是其实电脑设备厂商另有设定,于是用下述方法,循环检测电脑摄像头ID值,当ret获取值为True时,返回对应ID:

  1. import cv2
  2. ID = 0
  3. while(1):
  4. cap = cv2.VideoCapture(ID)
  5. ret,frame = cap.read()
  6. if ret == False:
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/280282
推荐阅读
相关标签
  

闽ICP备14008679号