OpenCV 2.1 Python Bindings Segfaulting - PullRequest
       14

OpenCV 2.1 Python Bindings Segfaulting

2 голосов
/ 11 сентября 2010

Здравствуйте. У меня проблема при группировке функций OpenCV по собственным функциям и получении ошибки сегментации.

Даже с таким простым кодом

def acquire_imagen():
  capture = cv.CaptureFromCAM( 0 )
  img = cv.QueryFrame( capture )
  return img
img = acquire_image()
print img[0,0]

Если я вызываю те же инструкции вне функции, все в порядке. У меня есть идея о том, что может происходить, но недостаточно знаний о Python, чтобы предотвратить это. Я думаю, что объект освобождается GC.

Ответы [ 2 ]

2 голосов
/ 23 ноября 2010

Чтобы объект захвата не собирался мусором, сохраняйте ссылку на него в переменной, пока вам больше не понадобятся изображения.В вашем коде: переменная «capture» может быть не локальной переменной функции, а переменной вне функции.Или, если вы хотите, чтобы он был инициализирован внутри функции, верните его вместе с захваченным изображением и сохраните его в переменной после вызова функции:


def acquire_imagen():
  capture = cv.CaptureFromCAM( 0 )
  img = cv.QueryFrame( capture )
  return capture, img
capture, img = acquire_image()
print img[0,0]

1 голос
/ 03 ноября 2010

Кажется, проблема в том, что объект захвата не может быть освобожден до доступа к изображениям, снятым с него.Не позволяйте объекту захвата освобождаться до тех пор, пока в вашей программе больше не будет доступа к изображению.

...