2012-09-18 1 views
0

Я новичок в opencv. При компиляции кода python я получаю следующую ошибку.typeerror аргумент 'image' должен быть iplimage

TypeError: argument 'image' must be iplimage 

Пожалуйста, объясните, что iplimage и почему я получаю это.

Вот мой код:

import cv 
capture=cv.CaptureFromCAM(0) 
image=cv.QueryFrame(capture) 
writer=cv.CreateVideoWriter("output.avi", 0, 15,(800,600) , 1) 
count=0 
cv.NamedWindow('Image_Window') 
while count<250: 
    image=cv.QueryFrame(capture) 
    cv.WriteFrame(writer, image) 
    cv.ShowImage('Image_Window',image) 
    cv.WaitKey(2) 
    count+=1 

Спасибо.

+0

Вы должны прочитать документы opencv. Там вы найдете, что такое 'IplImage'. – Vicent

+2

Если вы новичок в OpenCV, вам не следует изучать устаревший интерфейс. В пространстве имен 'cv2' имеется новый интерфейс python. –

ответ

1

IplImage - это основной класс изображений в OpenCV. cv.QueryFrame должен вернуть IplImage. Но, похоже, это не так.

Вам следует попробовать зарегистрироваться NULL. QueryFrame возвращает NULL вместо изображения в случае ошибки.

Также зарегистрируйтесь THIS вопрос. Вы можете найти свой ответ здесь.

1

Вы не предоставляете действительный кодек видеоролику. Я попробовал ваш код и получил ошибку, а затем я заменил используемый кодек и работал.

Вы должны изменить эту строку:

writer=cv.CreateVideoWriter("output.avi", 0, 15,(800,600) , 1) 

к этому:

writer=cv.CreateVideoWriter("output.avi", cv.CV_FOURCC('i','Y', 'U', 'V'), 15,(800,600) , 1) 

Однако Andrey Kamaev является правильным сказать, что вы не должны, а использовать интерфейс cv, новее cv2 интерфейс является одновременно проще и надежнее. In this question Я рассмотрел, как писать кадры изображений в файл с помощью интерфейса cv2.

Если вышеупомянутый кодек не работает для вас, я боюсь, что у вас могут быть проблемы. Вы можете обратиться к this question, чтобы узнать больше о поиске действительного кодека.

 Смежные вопросы

  • Нет связанных вопросов^_^