2013-01-17 5 views
0

소스 코드를 here에서 작업하고 있습니다.SURF를 사용하여 OpenCV EmguCV의 이미지를 일치 시키십시오.

변수는 일치 정보를 저장하는 것으로 보이지만 정보가 어떻게 저장되는지는 알 수 없습니다.

예를 들어, 얼마나 많은 일치하는 쌍을 찾을 수 있습니까? 어느 점이 어느 점과 일치합니까?

+0

여기에 코드를 게시하십시오. – sgarizvi

+0

내 코드는 [링크 된 기사] (http://www.emgu.com/wiki/index.php/SURF_feature_detector_in_CSharp)와 excatly 동일합니다. 여기에 게시하면 내 게시물이 너무 길어 보입니다. 아니면 다른 곳으로 연결되는 것이 아니라 질문에 코드를 게시해야하는 stackoverflow 방식입니까? – Gqqnbig

답변

2

이 줄을보십시오.

Image<Bgr, Byte> result = Features2DToolbox.DrawMatches(modelImage, modelKeyPoints, observedImage, observedKeyPoints, 
     indices, new Bgr(255, 255, 255), new Bgr(255, 255, 255), mask, Features2DToolbox.KeypointDrawType.DEFAULT); 

가장 중요한 변수는 마스크입니다. 이 변수에는 필요한 모든 정보가 있습니다. 그것은 배열입니다. 이 배열의 값이 1이면 우리는 공통 쌍을 가짐을 의미합니다. 이 어레이에 얼마나 많은 시간이 1 번 나타날지 계산해야합니다.

public int CountHowManyPairsExist(Matrix<byte> mask) 
    { 
     var matched = mask.ManagedArray; 
     var list = matched.OfType<byte>().ToList(); 
     var count = list.Count(a => a.Equals(1)); 
     return count; 
    } 
관련 문제