typeerror参数'image'必须是iplimage

时间:2012-09-18 18:21:53

标签: python image-processing opencv

我是opencv的新手。在编译python代码时,我收到以下错误。

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

感谢。

1 个答案:

答案 0 :(得分: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了解有关查找有效编解码器的详情。