【问题标题】:OpenCV / Array should be CvMat or IplImage / Releasing a capture objectOpenCV / Array 应该是 CvMat 或 IplImage / 释放一个捕获对象
【发布时间】:2011-07-05 15:26:21
【问题描述】:

编辑:Array should be CvMat or IplImage 不是针对此问题的错误消息,这是我收到的唯一最相关的错误消息。


我正在尝试使用 opencv 从应用程序中制作 *.exe。

我正在使用 Python 2.6openCV 2.1

我可以运行 *.exe 的一部分,我有一个菜单,我可以从中选择处理来自我的网络摄像头和静态图像的 2 个不同来源的一些图片。静态图像部分有效,但是当我在这里选择网络摄像头时是输出:

OpenCV 错误:未知函数中的错误参数(数组应为 CvMat 或 IplImage),文件 ..\..\..\..\ocv\opencv\src\cxcore\cxarray.cpp,
 第 1233 行
回溯(最近一次通话最后):
  文件“_ctypes/callbacks.c”,第 295 行,在“调用回调函数”中
  文件“game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.window.win32”,第 849 行,在 _wnd_proc
  文件“game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.window.win32”,第 918 行,在 _event_key
  文件“game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.window”,第 1219 行,在 dispatch_event 中
  文件“game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.event”,第 340 行,在 dispatch_event 中
  文件“”,第 502 行,在 on_key_press
  文件“”,第 461 行,在 dostart 中
  文件“”,第 482 行,在 getpoints 中
  文件“D:\Prog\Python\AugmentedR\src\pyar.py”,第 40 行,在 get_points 中
    pilimage = Image.fromstring("RGB", cv.GetSize(image), image.tostring())
cv.error: 数组应该是 CvMat 或 IplImage
回溯(最近一次通话最后):
  文件“”,第 616 行,在
  运行中的文件“game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.app”,第 264 行
  文件“game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.app.win32”,第 63 行,运行中
  文件“game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.app.win32”,第 84 行,在 _timer_func
  文件“game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.app”,第 193 行,处于空闲状态
  文件“game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.window”,第 1219 行,在 dispatch_event 中
  文件“game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.event”,第 340 行,在 dispatch_event 中
  文件“”,第 546 行,在 on_draw
AttributeError:游戏实例没有属性“bg”

我的pyar.py 文件。

用 py2exe 构建 *.exe 给了我这个输出:

似乎缺少以下模块 ['ICCProfile', '_imaging_gif', '_scproxy']

我不明白,这与我的来源一起使用。我尝试使用 py2exe 和 pyinstaller 打包我的应用程序,但输出是相同的。

我猜 *.exe 缺少一些东西,但我不知道如何调试它。

【问题讨论】:

    标签: python opencv camera release capture


    【解决方案1】:

    与打包者无关。

    问题是我没有关闭网络摄像头捕获,我的应用程序的几个进程实际上在后台运行。

    doc 是在谈论 ReleaseCapture 但这个函数显然不在 python 绑定中,调用:

    del(self.cam)

    做得很好,self.cam 是我的 CvCapture 对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多