imstraight 2020-05-03 16:00 采纳率: 100%
浏览 2929
已采纳

python的opencv打开两个摄像头失败

今天在搞双目的时候碰到的,之前在笔记本上可以运行的,换了台式出问题了。应该是**cv2.VideoCapture**就出问题了,网上翻了半天,不加上微软专属的**cv2.CAP_DSHOW**会出现

[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (1113) SourceReaderCB::OnReadSample videoio(MSMF): OnReadSample() is called with error status: -1072875772
[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (1125) SourceReaderCB::OnReadSample videoio(MSMF): async ReadSample() call is failed with error status: -1072875772
[ WARN:1] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (1159) CvCapture_MSMF::grabFrame videoio(MSMF): can't grab frame. Error: -1072875772

加上了就没有这个问题,但是第二个摄像头依然不能使用,读取帧返回false,报错

cv2.error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

求解决!!
附部分代码:

import cv2
capture = cv2.VideoCapture(0, cv2.CAP_DSHOW)
capture_usb = cv2.VideoCapture(1, cv2.CAP_DSHOW)
# 持续读取摄像头数据
while True:
    read_code, frame = capture.read()
    read_code2, frame2 = capture_usb.read()
    cv2.imshow("1", frame)
    cv2.imshow("2", frame2)
    if cv2.waitKey(1) == ord('q'):
        break
  • 写回答

2条回答 默认 最新

  • dabocaiqq 2020-05-04 15:04
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容