0

I am new at opencv. While compiling python code, I am getting the following error.

TypeError: argument 'image' must be iplimage

Please explain what iplimage is and why I am getting this.

Here is my code:

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

Thanks.

4

2 回答 2

1

IplImage 是 OpenCV 中的基本图像类。cv.QueryFrame应该返回一个 IplImage。但似乎,你的情况并非如此。

您应该尝试检查NULL. QueryFrame发生错误时返回NULL而不是图像。

另外,看看这个问题。你可能会在这里找到你的答案。

于 2012-09-18T23:02:24.900 回答
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界面更容易且更可靠。 在这个问题中,我介绍了如何使用接口将图像帧写入文件cv2

如果上述编解码器不适合您,恐怕您可能会遇到一些麻烦。您可以参考此问题以了解有关查找有效编解码器的更多信息。

于 2012-09-19T18:38:03.827 回答