2011-10-05 2 views
1

최근에는 로봇 프로젝트를 진행했습니다. 내 로봇이 그 색깔로 물체를 탐지 할 수는 있지만 다른 물체에 대해서는 그다지 좋지 않다는 것을 알게되었습니다. 따라서 로봇이 템플릿을 사용하여 정의 할 대상 객체를 찾기 위해 이미지를 실시간으로 내 보냅니다.SURF를 사용하여 템플릿을 원본 이미지와 어떻게 일치시킬 수 있습니까?

불행히도 템플릿의 핵심 부분을 이미지의 이미지와 일치시키는 법을 모르겠습니다.

당신의 OpenCV의 디렉토리에 샘플 디렉토리에 SURF를 사용하는 방법을 알 수있는 아주 좋은 예입니다

답변

1

: OpenCV의/샘플/C/find_obj.cpp 당신은 라인을 참조합니다 (SURF 기술자를 사용할 필요가

는 245-

CvSeqReader reader; 
cvStartReadSeq(descriptors, &reader, 0); 

장면과 같은 일을 수행하고 찾을 NN 검색에서 두 디스크립터를 사용 : 당신은 CvSeqReader으로 설명을 읽어야

CvSeq *objectKeypoints = 0, *objectDescriptors = 0; 
CvSURFParams params = cvSURFParams(500, 1); 
cvExtractSURF(object, 0, &objectKeypoints, &objectDescriptors, storage, params); 

255) 그들 사이의 일치. 다시 한번, OpenCV가 제공 한 샘플이 도움이 될 것입니다. :)

+0

답장을 보내 주셔서 감사합니다. 이미지에서 대상물의 위치를 ​​파악하는 것이 재미 있습니다. 그렇게 할 수있는 코드를 말할 수 있습니까? opencv 샘플에서 찾을 수 있다고 말한 코드를 사용해보십시오.하지만이 두 함수를 주석 처리하지 않으면 작동하지 않습니다. cv :: flann :: Index flann_index (m_image, cv :: flann :: KDTreeIndexParams (4)); // 4 개의 랜덤 화 된 kdtrees를 사용 flann_index.knnSearch (m_object, m_indices, m_dists, 2, cv :: flann :: SearchParams (64)); // 체크 된 리프의 최대 수는 왜 그렇게 말해 줄 수 있습니까? – user979779

+0

나는 당신의 질문을 정말로 얻지 못한다. 당신이 말하는 코드를 다시 포맷하고 "작동하지 않는다"는 것이 무엇을 의미하는지 명확히 할 수 있습니까? 샘플 또는 코드가 작동하지 않습니까? – Turgal

관련 문제