2017-01-17 22 views
1

나는 서핑을 기반으로하는 이미지 매칭 알고리즘을 작성하고 있습니다. 나는 400 헤센 임계 값 서핑 초기화 :flann knnmatch의 OpenCV 오류

surf = cv2.SURF(400) 

과 일치 플란넬했다.

그러나 이미지가 너무 느리게 실행됩니다. 그런 다음 처음에는 광 테스트를하고 심층 테스트를하기로 결정했습니다. 그래서 헤센 임계 값을 1200으로 변경했습니다.

surf = cv2.SURF(1200) 

지금은 훨씬 빨라졌습니다.

matches = flann.knnMatch(des1,des2,k=2) 

그러나 일부 이미지에 다음과 같은 오류가 발생합니다 : 내가 찾던 knnMatch의 일부 images.But에 하나의 키포인트는이 문제로 인해 높은 헤 시온의 임계 값 때문에오고 있었다

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 

답변

1

이를 2 가까운 이웃.