【问题标题】:typeerror argument 'image' must be iplimagetypeerror 参数 'image' 必须是 iplimage
【发布时间】:2012-09-18 18:21:53
【问题描述】:

我是 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

谢谢。

【问题讨论】:

  • 您应该阅读 opencv 文档。在那里你会发现IplImage 是什么。
  • 如果您是 OpenCV 新手,那么您不应该学习旧版界面。 cv2 命名空间中有一个新的python接口。

标签: python image-processing opencv


【解决方案1】:

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

您应该尝试检查NULLQueryFrame 返回 NULL 以防出错。

另外,请查看THIS 问题。您可能会在这里找到答案。

【讨论】:

    【解决方案2】:

    您没有向视频作者提供有效的编解码器。我尝试了您的代码并出现错误,然后我更改了正在使用的编解码器并且它工作了。

    你应该改变这一行:

    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 了解更多关于寻找有效编解码器的信息。

    【讨论】:

      猜你喜欢
      • 2016-05-21
      • 2020-04-16
      • 2017-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多