Python OpenCV: 无法显示图像

2 投票
2 回答
1126 浏览
提问于 2025-04-16 01:16

我正在尝试从一台索尼Handicam DCR-HC38摄像机捕捉视频,下面是我运行的代码,我把[-1 .. 3]传给了CaptureFromCAM这个函数。代码可以运行,但我没有得到任何图像。请问我需要以某种方式“包装”这个摄像机吗?Skype可以识别这个摄像机,但python/opencv却无法识别。我是在Windows Vista系统上运行的,不知道这是否有帮助。

import cv

cv.NamedWindow("camera", 1)

capture = cv.CaptureFromCAM(-1)

while True:
    img = cv.QueryFrame(capture)
    cv.ShowImage("camera", img)
    if cv.WaitKey(10) == 27:
        break

2 个回答

3

我不确定你是否解决了这个问题。不过我找到的解决办法是检查一下OpenCv正在尝试访问哪个驱动程序。我有v4l1和v4l2两个驱动,但在我的联想x200(内置摄像头)上,只有使用gstreamer编解码器和v4l2驱动才能访问设备/dev/video0,系统是ubuntu 10.10。所以我需要从源代码重新编译OpenCv,首先要应用一个补丁,补丁地址是:

Opencv-2.0.0.link.v4l2.patch

把补丁解压到你的opencv根目录下,然后打开终端,进入opencv根目录,接着执行以下命令:

patch -p0 <OpenCV-2.0.0-link-v4l2.patch

然后:

make
make install

现在你的opencv库应该可以使用v4l2驱动了,希望这对某些人有帮助。

3

试着增加一下cv.WaitKey的延迟时间。

撰写回答