0

我买了一个树莓派并使用 Archlinux 映像 SD,我正在尝试学习计算机视觉,因为我打算将树莓派连接到一个 arduino 板上并做一些机器人。

我试图将 opencv 与 python 一起使用,所以我按照教程在 Archlinux 上安装 opencv 并尝试了以下代码:

import cv2.cv as cv

capture = cv.CaptureFromCAM(-1)
cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_WIDTH,  640)
cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_HEIGHT, 480)

img = cv.QueryFrame(capture)

print "Captured "
cv.SaveImage("output.jpg",img3)

我有几个问题。我收到这些错误

VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument

我认为它们是警告,因为执行结束并创建了“output.jpg”,但图像被弄乱了。我包括了图像,所以你可以看到它的样子。

此外,我可以将分辨率更改为 320x240,因为它只会创建一个全黑图像。

在过去的两天里,我一直在互联网上寻找解决方案,但我陷入了死胡同……所以我真的很感谢任何可以帮助我的人。

谢谢!在此处输入图像描述

4

1 回答 1

0

我认为我发现了我的问题......看起来如果我在打开相机后执行 time.sleep(3) 图像正在被正确捕获。

我不是 100% 确定是否是这样,但自从我这样做以来它一直在工作。如果这适用于我的下一次测试,我会及时通知你,但现在我建议这样做。

于 2012-11-26T16:16:08.640 回答