OpenCV /数组应为CvMat或IplImage /释放捕获对象
问题内容:
编辑: Array should be CvMat or IplImage
不是特定于此问题的错误消息,那是我得到的唯一最相关的错误消息。
我正在尝试使用opencv从应用程序中制作* .exe。
我正在使用 Python 2.6 和 openCV 2.1 。
我可以运行*
.exe的一部分,我有一个菜单,在这里我可以选择处理来自2种不同来源的一些图像,这些图像来自我的网络摄像头和静态图像。静态图像部分有效,但是当我选择网络摄像头时,输出为:
OpenCV错误:未知函数,文件.. \ .. \ .. \ .. \ ocv \ opencv \ src \ cxcore \ cxarray.cpp中的参数错误(数组应为CvMat或IplImage),
1233行
追溯(最近一次通话):
“调用回调函数”中的文件“ _ctypes / callbacks.c”,第295行
在_wnd_proc中,文件“ game_ar \ build \ pyi.win32 \ game_ar \ outPYZ1.pyz / pyglet.window.win32”,行849
在_event_key中的第918行,文件“ game_ar \ build \ pyi.win32 \ game_ar \ outPYZ1.pyz / pyglet.window.win32”
在dispatch_event中的文件“ 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行
on_key_press中的文件“”,第502行
dostart中的文件“”,第461行
在获取点中添加文件“”,行482
文件“ 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行
在_timer_func中,文件“ game_ar \ build \ pyi.win32 \ game_ar \ outPYZ1.pyz / pyglet.app.win32”,第84行
空闲状态下的文件“ game_ar \ build \ pyi.win32 \ game_ar \ outPYZ1.pyz / pyglet.app”,第193行
在dispatch_event中的文件“ 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行
在on_draw中的文件“”,第546行
AttributeError:游戏实例没有属性'bg'
我的pyar.py文件。
用py2exe构建* .exe给了我这个输出:
以下模块似乎丢失
['ICCProfile','_ imaging_gif','_ scproxy']
我不明白,这与我的消息来源有关。我试图用py2exe和pyinstaller打包我的应用程序,但是输出是相同的。
我猜* .exe丢失了一些东西,但我不知道该怎么调试。
问题答案:
它与包装商无关。
问题是我没有关闭网络摄像头捕获,我的应用程序的多个进程实际上在后台运行。
该文档正在讨论,ReleaseCapture
但是此函数显然不在python绑定中,调用:
del(self.cam)
做得很好,self.cam
是我的CvCapture
目标。