2013-06-19 3 views
0

MATLAB을 처음 사용했습니다. VL_Feat 라이브러리를 사용하고 있습니다. 두 이미지 사이의 일치하는 지점 수를 계산할 수있는 코드를 작성하려고합니다. 지금까지 두 이미지를 일치시키는 방법을 알고 있습니다. 내가 원하는 것은 매칭 포인트의 수입니다. 예를 들어 "이미지 1에서 발견 된 X 키 포인트"로 MATLAB을 사용하여 두 이미지 간의 일치 수를 계산합니다. vl_sift

이 사람이 나를 도울 수 "Z 일치" "Y 키 포인트는 2 이미지에서 발견"?

im1Path = fullfile(vl_root, 'data', 'roofs1.jpg') ; 
im2Path = fullfile(vl_root, 'data', 'roofs2.jpg') ; 

im1 = imread(im1Path) ; 
im2 = imread(im2Path) ; 


[f1,d1] = vl_sift(im2single(rgb2gray(im1))) ; 
[f2,d2] = vl_sift(im2single(rgb2gray(im2))) ; 

[matches, scores] = vl_ubcmatch(d1,d2) ; 

fprintf(' %d a counts.\n', vl_ubcmatch(d1,d2)); 
+0

여기 정확히 어떤 문제가 있습니까? 'fprintf'-statement? 또는'vl_ubcmatch'에서 반환 된'matches'? – Schorsch

+0

그 fprintf 아마 부하 및 부하 출력 줄 것입니다. 대신에'fprintf ('% d 개의 카운트. \ n', numel (matches)); ' –

+0

@HughNolan 나는 그것이 효과가 있다고 생각한다. 고맙습니다. 각 이미지의 핵심 포인트 수를 인쇄하는 방법을 알려주시겠습니까? 예를 들어 "600 개의 키포인트가 im1에서 발견됨", "720 개의 키포인트가 im2에서 발견됨" –

답변

0

나는 당신이 주어진 문 아래 당신이 원하는 정확한 출력을 생성하지 않습니다 separately.the 두 이미지의 키포인트의 어떤을 발견하지 않으려는 이해하지만이 어느 정도 도움이 될 것입니다 희망으로. 이것은 또한 키포인트에 관한 몇 가지 중요한 정보를 보여줍니다. 두 이미지가 I & J 경우, 다음 두 이미지를 읽은 후 당신은 코드의이 라인 -

I = single(rgb2gray(I)); 
vl_covdet(I, 'verbose'); 
J = single(rgb2gray(J)); 
vl_covdet(J, 'verbose'); 

한 후 나머지를 추가 할 수 있습니다.

관련 문제