2013-06-19 5 views
0

Я новичок в MATLAB. Я использую библиотеку VL_Feat. Я пытаюсь построить код, который может рассчитать количество совпадающих точек между двумя изображениями. До сих пор я знаю, как совместить два изображения. То, что я хочу получить, - это количество совпадающих точек.рассчитать количество совпадений между двумя изображениями с помощью MATLAB vl_sift

В качестве примера «X ключевых точек, найденных в изображении 1» «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'? Или возвращенные 'match' из' vl_ubcmatch'? – Schorsch

+0

Это fprintf, вероятно, даст вам нагрузки и нагрузки. Попробуйте вместо этого 'fprintf ('% d a counts. \ N', numel (matches));' –

+0

@HughNolan Я думаю, что это работает. Спасибо. Можете ли вы рассказать мне, как печатать количество ключевых точек в каждом изображении? В качестве примера «600 ключевых точек, найденных в im1», «720 ключевых точек, найденных в im2», –

ответ

0

Как я понимаю, вы не хотите, чтобы найти не из ключевых точек двух изображений separately.the приведенные ниже утверждения не произведет точный вывод, который вы хотите, но я надеюсь, что это поможет в какой-то степени. это также показывает некоторую важную информацию о ключевых точках. Если два изображения я & J, то после прочтения двух изображений вы можете добавить эти линии-

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

, а затем остальные коды.