1

我有一个 Logitech Pro 9000 网络摄像头,现在我尝试学习 OpenCV。我将 OpenCV 2.4.5 与 Python 2.7 一起使用。我在使用更高分辨率的 CvtColor 函数时遇到问题。以下脚本适用于 640x480,但不适用于更高分辨率(800X600 及更高)。

import cv

cv.NamedWindow("Video", cv.CV_WINDOW_AUTOSIZE)

camera_index = 1
capture = cv.CaptureFromCAM(camera_index)
cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_WIDTH,1200)
cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_HEIGHT,800)

grey_frame = cv.CreateImage((1200,800),8,1)

while True:
    input_frame = cv.QueryFrame(capture)
    cv.CvtColor(input_frame,grey_frame,cv.CV_BGR2GRAY)
    cv.WaitKey(5)
    cv.ShowImage("Video", grey_frame)

我收到以下错误

cv2.error: dst.data == dst0.data

编辑:已解决保存捕获的 input_frame 后。我注意到保存图像的分辨率与我的设置值不匹配。我将 1200x800 设置为捕获属性并获得了 1280x800 的图像。使用此分辨率后,一切正常。

4

1 回答 1

0

保存捕获的 input_frame 后。我注意到保存图像的分辨率与我的设置值不匹配。我将 1200x800 设置为捕获属性并获得了 1280x800 的图像。使用此分辨率后,一切正常。

于 2013-07-01T15:59:23.110 回答