python - 从 2 个摄像头捕获(OpenCV、Python)

标签 python opencv camera

<分区>

所以我试图从 openCV(python 和 windows 7)中的两个摄像头进行捕捉。我用一台相机拍得很好,你也会注意到我对图像做了一些时髦的事情,但这并不重要。这是尝试使用两个的代码

import cv
import time
cv.NamedWindow("camera", 1)
cv.NamedWindow("camera2", 1)
capture = cv.CaptureFromCAM(0)
capture2 = cv.CaptureFromCAM(1)
while True:
    img = cv.GetMat(cv.QueryFrame(capture))
    img2 = cv.GetMat(cv.QueryFrame(capture2))
    dst_image = cv.CloneMat(img)
    dst_image2 = cv.CloneMat(img2)
    cv.ConvertScale(img, dst_image, 255, -59745.0)
    cv.ConvertScale(img2, dst_image2, 255, -59745.0)
    cv.ShowImage("camera", dst_image)
    cv.ShowImage("camera2", dst_image2)
    if cv.WaitKey(10) == 27:
        cv.DestroyWindow("camera")
        cv.DestroyWindow("camera2")
        break

相当简单。但是它不会工作。在尝试从第二台摄像机(循环中的第二行代码)创建矩阵时,我被告知捕获为空。我使用的相机是罗技的并且是同一型号。

旁注:我也找不到计算 python 中连接的摄像头的命令,所以如果有人可以向我推荐它,我将不胜感激。 --阿什利

编辑: 知道 Windows 经常提示我选择我想使用的相机也可能很有用。我似乎无法避免这种行为。此外,我还下载了一些安全软件,可以同时成功运行两个摄像头。它不是开源的或类似的东西。很明显,这是可能的。

最佳答案

我在使用两个 lifecam 工作室网络摄像头时遇到了同样的问题。稍作阅读后,我认为该问题与 USB 总线上的带宽过载有关。如果我 1.) 降低分辨率(每个 320 x 240)或 2.) 降低帧速率(~99 毫秒 @ 800 x 600),两台相机都会开始工作。附件是让我工作的代码:

import cv

cv.NamedWindow("Camera 1")
cv.NamedWindow("Camera 2")
video1 = cv.CaptureFromCAM(0)
cv.SetCaptureProperty(video1, cv.CV_CAP_PROP_FRAME_WIDTH, 800)
cv.SetCaptureProperty(video1, cv.CV_CAP_PROP_FRAME_HEIGHT, 600)

video2 = cv.CaptureFromCAM(1)
cv.SetCaptureProperty(video2, cv.CV_CAP_PROP_FRAME_WIDTH, 800)
cv.SetCaptureProperty(video2, cv.CV_CAP_PROP_FRAME_HEIGHT, 600)

loop = True
while(loop == True):
    frame1 = cv.QueryFrame(video1)
    frame2 = cv.QueryFrame(video2)
    cv.ShowImage("Camera 1", frame1)
    cv.ShowImage("Camera 2", frame2)
    char = cv.WaitKey(99)
    if (char == 27):
        loop = False

cv.DestroyWindow("Camera 1")
cv.DestroyWindow("Camera 2")

关于python - 从 2 个摄像头捕获(OpenCV、Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8651948/

相关文章:

camera - 在 SceneKit 中设置相机的视角

Android:如何旋转或更改使用库录制的视频的方向?

python - Google App Engine 和 Cloud SQL : Lost connection to MySQL server at 'reading initial communication packet' SQL 2nd Gen

python - 我的立体校正 (OpenCV) 图像是错误的。 PYTHON

android - Android 4.1.2、三星 galaxy s3、HTC 上的 Phonegap 相机崩溃

python - 使用 python (MAC OSX) 和 PyCharm IDE 安装 OpenCV 时出错

c++ - cvStartFindContours 的奇怪问题?

python - pandas 映射到数组字典

python - 无法从自定义 Python 包访问模块

python - 使用 Python 打印多个数组中的值