【问题标题】:Opencv webcam script endlessly turns webcams off and onOpencv 网络摄像头脚本无休止地打开和关闭网络摄像头
【发布时间】:2017-01-29 04:57:15
【问题描述】:

我编写了一个脚本来显示来自我的网络摄像头的深度图:

cam_a = int(sys.argv[1])
cam_b = int(sys.argv[2])


while True:
    imgl = cv2.VideoCapture(cam_a).read()[1]
    imgL = cv2.cvtColor(imgl, cv2.COLOR_BGR2GRAY)

    imgr = cv2.VideoCapture(cam_b).read()[1]
    imgR = cv2.cvtColor(imgr, cv2.COLOR_BGR2GRAY)


    stereo = cv2.StereoBM(cv2.STEREO_BM_BASIC_PRESET,ndisparities=16, SADWindowSize=15)
    disparity = stereo.compute(imgL,imgR)

    cv2.imshow('Disparity', disparity)

虽然它不会给我一个错误,但它确实会不停地闪烁我的两个网络摄像头。我担心这可能会破坏我的网络摄像头,我该如何阻止它?

编辑

因此,我对其进行了更改,使其仅将一个摄像头显示为普通视频:

while True:
    imgl = cv2.VideoCapture(cam_a).read()[1]
    imgL = cv2.cvtColor(imgl, cv2.COLOR_BGR2GRAY)

    #imgr = cv2.VideoCapture(cam_b).read()[1]
    #imgR = cv2.cvtColor(imgr, cv2.COLOR_BGR2GRAY)


    #stereo = cv2.StereoBM(cv2.STEREO_BM_BASIC_PRESET,ndisparities=16, SADWindowSize=15)
    #disparity = stereo.compute(imgL,imgR)

    cv2.imshow('Disparity', imgL)
    cv2.waitKey(10)

仍然只是让相机闪烁。我不确定这里要改变什么。

【问题讨论】:

    标签: python opencv video webcam depth


    【解决方案1】:

    有问题。您在 while 循环下不断启动 videocapture 对象。您应该使用在 while 循环之前启动的一个实例,并使用该 videocapture 实例访问图像。请参阅此示例并相应地更改您的代码,希望它能解决您的问题:

    import cv2
    camera = cv2.VideoCapture(0)
    while True:
        return_value,image = camera.read()
        gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
        cv2.imshow('image',gray)
        if cv2.waitKey(1)& 0xFF == ord('s'):
            cv2.imwrite('test.jpg',image)
            break
    camera.release()
    cv2.destroyAllWindows()
    

    【讨论】:

      【解决方案2】:

      你只需要在imshow 之后添加一个延迟:

      cv2.waitKey(10)
      

      【讨论】:

      • 那行不通。它现在显示图像,但我的两个网络摄像头(罗技)仍在打开,然后关闭,然后打开,然后关闭,等等。
      • 如果您只使用一个凸轮并且只为一个凸轮更改代码会发生什么?
      • 嘿,我添加了新部分。
      猜你喜欢
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      • 2012-12-20
      相关资源
      最近更新 更多