2013-06-30 5 views
1

У меня есть веб-камера Logitech Pro 9000, и сейчас я пытаюсь изучить OpenCV. Я использую OpenCV 2.4.5 вместе с Python 2.7. У меня возникают проблемы с функцией CvtColor при более высоких разрешениях. Следующий скрипт работает на 640x480, но не с более высоким разрешением (800X600 и выше).CvtColor Ошибка при более высоких разрешениях

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 

EDIT: решаемые После сохранения захваченного input_frame. Я заметил, что разрешение сохраненного изображения не соответствует моим заданным значениям. Я установил 1200x800 как свойства захвата и получил изображение 1280x800. После использования этого разрешения все работало нормально.

+0

Каково ваше первоначальное разрешение камеры? Я думаю, вам не разрешено устанавливать свойства захвата высоты и ширины выше исходных значений. Вместо 1200x800 свойство захвата может быть установлено на ограничение разрешения камеры. Тогда это будет причиной того, что вы получаете несоответствие размера для функции cvtcolor. – baci

+0

Максимальное разрешение камеры - 1600x800. Я протестировал разрешение в OpenCV. cv.ShowOmage («Видео», input_frame) будет работать в вышеуказанном коде. Это cv.CvtColor, у которого есть проблема с более высоким разрешением. –

+0

можете ли вы отлаживать и видеть, является ли входной кадр 8-битным 3-мя каналами или нет? – baci

ответ

0

После сохранения захваченного входного кадра. Я заметил, что разрешение сохраненного изображения не соответствует моим заданным значениям. Я установил 1200x800 как свойства захвата и получил изображение 1280x800. После использования этого разрешения все работало нормально.