OpenCV / Array должен быть CvMat или IplImage / Releasing объекта захвата - PullRequest
1 голос
/ 28 февраля 2011

Редактировать: Array should be CvMat or IplImage - это не сообщение об ошибке, относящееся к этой проблеме, это единственное наиболее релевантное сообщение об ошибке, которое я получил.


Я пытаюсь сделать* .exe вне приложения с помощью opencv.

Я использую Python 2.6 и openCV 2.1 .

Я могу запустить часть* .exe, у меня есть меню, из которого я могу выбрать обработку нескольких изображений из двух разных источников, мою веб-камеру и статическое изображение.Часть статического изображения работает, но когда я выбираю веб-камеру, вывод:

OpenCV Error: Bad argument (Array should be CvMat or IplImage) in unknown function, file ..\..\..\..\ocv\opencv\src\cxcore\cxarray.cpp,
 line 1233
Traceback (most recent call last):
  File "_ctypes/callbacks.c", line 295, in 'calling callback function'
  File "game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.window.win32", line 849, in _wnd_proc
  File "game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.window.win32", line 918, in _event_key
  File "game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.window", line 1219, in dispatch_event
  File "game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.event", line 340, in dispatch_event
  File "", line 502, in on_key_press
  File "", line 461, in dostart
  File "", line 482, in getpoints
  File "D:\Prog\Python\AugmentedR\src\pyar.py", line 40, in get_points
    pilimage = Image.fromstring("RGB", cv.GetSize(image), image.tostring())
cv.error: Array should be CvMat or IplImage
Traceback (most recent call last):
  File "", line 616, in 
  File "game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.app", line 264, in run
  File "game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.app.win32", line 63, in run
  File "game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.app.win32", line 84, in _timer_func
  File "game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.app", line 193, in idle
  File "game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.window", line 1219, in dispatch_event
  File "game_ar\build\pyi.win32\game_ar\outPYZ1.pyz/pyglet.event", line 340, in dispatch_event
  File "", line 546, in on_draw
AttributeError: Game instance has no attribute 'bg'

Мой pyar.py файл.

Сборка * .exeс py2exe дал мне этот вывод:

The following modules appear to be missing
['ICCProfile', '_imaging_gif', '_scproxy']

Я не понимаю, это работает с моими источниками.Я пытался упаковать свое приложение с py2exe & pyinstaller, но вывод тот же.

Я предполагаю, что * .exe чего-то не хватает, но я не знаю, что и как его отладить.

1 Ответ

4 голосов
/ 02 марта 2011

Это не было связано с упаковщиками.

Проблема заключалась в том, что я не закрывал захват веб-камеры, некоторые процессы моего приложения фактически выполнялись в фоновом режиме.

The doc говорит о ReleaseCapture, но эта функция, по-видимому, отсутствует в привязках python, вызывая:

del(self.cam)

выполнила работу просто хорошо, self.cam быламой CvCapture объект.

...