2016-05-15 2 views
0

Я изучаю соответствие ключевых точек в OpenCV (версия 2.4.8). Попытка распечатать ключевые точки и/или дескрипторы, чтобы получить лучшее представление о них:OpenCV 2.4.8, Python: невозможно распечатать ключевые точки SIFT и дескрипторы

test_img = cv2.imread('../../Downloads/stanford.jpg') 

print len(test_img) 

detector = cv2.FeatureDetector_create("SIFT") 
descriptor = cv2.DescriptorExtractor_create("SIFT") 

sskp = detector.detect(test_img) 
sskp, ssd = descriptor.compute(test_img, sskp) 

print sskp, ssd 

Код компилируется, но ничего не говорит о не распечатываются. Вот результат:

/usr/bin/python2.7 /home/.../test_sift.py 
683 

Process finished with exit code 139 

Вот "stanford.jpg" Изображение: http://web.stanford.edu/group/iuc/assets/bg6.jpg

Почему print здесь не работает?

+0

Что именно вы подразумеваете под словом «ничего не печатает». Потому что, даже если эти переменные были пустыми строками (что маловероятно), он, по крайней мере, напечатает новую строку. Вы видите '[] None'? Вы никоим образом не проверяете, загружено ли изображение ('imread' не будет генерировать исключение). Вы уверены, что изображение действительно загружено? –

+0

Извините, вы правы, я обновил сообщение. Возврат: «Процесс завершен с кодом выхода 139». Я также проверял изображение, действительно есть. –

+0

О, этот код выхода значителен, это segfault. Может быть ошибкой в ​​OpenCV, которая была исправлена ​​с тех пор - эта версия составляет около 2,5 лет. Можете ли вы попробовать перейти на более новую версию? –

ответ

1

Как предположил Дэн Машек, это было ошибкой в ​​старой версии OpenCV. Обновление до OpenCV 2.4.12 исправило проблему.

Смежные вопросы