为什么使用Smooth导致Python崩溃?

时间:2010-01-10 02:31:55

标签: python opencv

我正在使用Python 2.6来对抗OpenCV 2.0。我已经启动了文件捕获和拉帧。我已经显示图像以确保它有效。当我调用这个例程时,python崩溃了:

def SmoothImage(self,SmoothingMaskSize=3):
    temp=cv.CreateImage(cv.GetSize(self._lpImage),self._lpImage.depth,self._lpImage.nChannels)
    cv.Smooth(self._lpImage,temp)
    self._lpImage=temp

我也尝试使用cv.Smooth(self._lpImage,self._lpImage)将其平滑到位

我是Python的新手 - 我错过了一些明显的东西吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

OpenCV 2.0安装程序附带的绑定有问题;我有类似的问题,一些非常简单的操作触发崩溃。从源代码编译应该修复它。

答案 1 :(得分:0)

如果你不需要访问OpenCV的面向对象部分,你应该看一下ctypes-opencv,这是一组更好的python绑定。与OpenCV附带的SWIG生成的绑定相比,它是精心手工制作的,我从来没有发现任何错误。

http://code.google.com/p/ctypes-opencv/

答案 2 :(得分:0)

您可以通过删除类定义来隔离问题吗?我得到了这个工作:

planes = [cv.CreateImage(cv.GetSize(image), cv.IPL_DEPTH_32F, 1) for i in range(3)]
cv.Split(image, planes[0], planes[1], planes[2], None)
for plane in planes:
    cv.Smooth(plane, plane, smoothtype=cv.CV_GAUSSIAN, param1=9, param2=0, param3=0, param4=0)