CvtColor在更高分辨率下出错

时间:2013-06-30 21:04:12

标签: python opencv webcam logitech

我有一台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图像。使用此解决方案后,一切正常。

1 个答案:

答案 0 :(得分:0)

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