2013-10-27 3 views
0

Я пытаюсь использовать код по этой ссылке: OpenCV python's API: FlannBasedMatcherPython - Использование «Flann» - «Тип ошибки»

Однако я получаю сообщение об ошибке:

File "C:\Users\User\Desktop\lktracker\lktrack.py", line 22, in match_flann 
flann = cv2.flann_Index(desc2, flann_params) 
TypeError: features is not a numpy array, neither a scalar 

Вот часть мой код, который делает вызов функции FLANN:

for i in range(rowsInOrigDes): 
     for j in range(rowsInNextDes): 

      origDesArr = np.array(origDes[i,:])    
      nextDesArr = np.array(nextDes[j,:])    
      origDesArr = [float(x) for x in origDesArr] 
      nextDesArr = [float(x) for x in nextDesArr] 
      b = match_flann(origDesArr, nextDesArr, r_threshold = 0.6) 
      if b: 
       print b 

Я пользуюсь этой функцией правильно? Я не уверен, что объявить b либо ..

Если кто-то может помочь в этом, я был бы очень признателен.

+2

Полный код, пожалуйста? –

ответ

2

Проблема в том, что features - это список, а не массив numpy. Вот что говорит вам TypeError. Flann принимает только числовые массивы типа float32.

Немного сложно дать вам решение, не видя весь ваш код, но это довольно просто. Вот полный учебник для основанного согласования OpenCV Flann в Python: https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_feature2d/py_matcher/py_matcher.html

Обратите внимание, что она основана на OpenCV 3.0.0 Dev версии, но это должно быть довольно легко адаптироваться к версии вашего выбора.

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