python - OpenCV 2.1 Python 绑定(bind)段错误

标签 python opencv segmentation-fault

您好,我在将 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/

相关文章:

python - 从python中的复杂数据结构中提取数据

c++ - CMake 不编译 OpenCV

c++ - 递归函数中由信号 SIGSEGV(地址边界错误)终止

android - 在 Android Studio 中找不到 OpenCV

iphone - @try @catch 是否适用于 SIGSEGV/SEGV_ACCERR

c - 使用 getline 时出现段错误(核心已转储)

python - caffe 可以同时接收一批不同分辨率的输入吗?如果是这样怎么办?

python - lua相当于shlex?

javascript - Django View 中的日期时间在 Javascript 中使用

即使 WITH_CUDA=ON 在 CMake 中,OpenCV 也不会使用 CUDA 构建