2012-05-26 3 views
2

Я пытаюсь запустить один из образцов, включенных в opencv: find_obj.py. OpenCV Версия: 2,4 ОС: ArchLinxОшибка примера OpenCV Python

Существует ошибка в функции:

flann = cv2.flann_Index(desc2, flann_params) 

Ошибка:

File "find_obj2.py", line 27, in match_flann 
    flann = cv2.flann_Index(desc2, flann_params) 
TypeError: <unknown> is not a numpy array 

Пожалуйста, кто знает, как это исправить?

+1

кажется что вы установили OpenCV 2.3.x (не 2.4.0). Проверьте значения, указанные 'cv2 .__ version__' и' cv2.getBuildInformation() '. –

+0

Спасибо за ваш ответ ... В конце проблема заключалась в несовместимости образца с последней версией библиотеки ... – Swordfish90

ответ

5

Решение было найдено: я заменил следующую строку в find_obj.py:

surf = cv2.SURF(1000) 
kp1, desc1 = surf.detect(img1, None, False) 
kp2, desc2 = surf.detect(img2, None, False) 
desc1.shape = (-1, surf.descriptorSize()) 
desc2.shape = (-1, surf.descriptorSize()) 

с теми:

surf_det = cv2.FeatureDetector_create("SURF") 
surf_ext = cv2.DescriptorExtractor_create("SURF") 
kp1 = surf_det.detect(img1) 
kp2 = surf_det.detect(img2) 
kp1, desc1 = surf_ext.compute(img1, kp1) 
kp2, desc2 = surf_ext.compute(img2, kp2) 

Надеется, что это может помочь кому-то еще ...: D

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