您好,我在将 OpenCV 的函数分组为我自己的函数时遇到问题并出现段错误。
即使代码如此简单
def acquire_imagen():
capture = cv.CaptureFromCAM( 0 )
img = cv.QueryFrame( capture )
return img
img = acquire_image()
print img[0,0]
如果我在函数外部调用相同的指令,一切正常。我知道可能会发生什么,但对 python 的了解不够,无法阻止它。我认为该对象正在被 GC 释放。
最佳答案
为了防止捕获对象被垃圾收集,请将其引用保留在变量中,直到不再需要图像为止。在您的代码中:“捕获”变量不能是函数的局部变量,而是函数外部的变量。或者,如果您希望它在函数内部初始化,请将其与捕获的图像一起返回,并在调用函数后将其存储在变量中:
def acquire_imagen():
capture = cv.CaptureFromCAM( 0 )
img = cv.QueryFrame( capture )
return capture, img
capture, img = acquire_image()
print img[0,0]
关于python - OpenCV 2.1 Python 绑定(bind)段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3689871/