我是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
感谢。
答案 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了解有关查找有效编解码器的详情。