Я пишу алгоритм сопоставления изображений на основе surf. инициализирую прибой с 400 мешковины порога:Ошибка OpenCV в flann knnmatch
surf = cv2.SURF(400)
и сделал Flann соответствия.
Но он работает слишком медленно (на больших наборах изображений). Затем я решил сначала провести легкое тестирование, а затем провести глубокое тестирование. Поэтому я изменил значение hessian до 1200.
surf = cv2.SURF(1200)
Это намного быстрее.
matches = flann.knnMatch(des1,des2,k=2)
Но на некоторых изображениях он выдает следующее сообщение об ошибке:
OpenCV Error: Assertion failed ((globalDescIdx>=0) && (globalDescIdx < size())) in getLocalIdx, file /tmp/opencv-2.4.10/modules/features2d/src/matchers.cpp, line 163
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "indexThreadsDeep.py", line 97, in threadRun
if(imageMatch(qDes,tDes)):
File "indexThreadsDeep.py", line 69, in imageMatch
matches = flann.knnMatch(des1,des2,k=2)
error: /tmp/opencv-2.4.10/modules/features2d/src/matchers.cpp:163: error: (-215) (globalDescIdx>=0) && (globalDescIdx < size()) in function getLocalIdx