Извлеченные ключевые точки и функции не находятся в точках интереса

Я работаю с изображением с синими и серыми пятнами. В конце концов я хочу распознать все изображения в наборе данных, которые имеют эту сцену. Я использую для этого SIFT. Я попытался сопоставить ключевые точки, которые выглядят так:

По моему мнению, сгенерированные ключевые точки не представляют интереса. Я делаю что-то не так?

im1 = im2single(im1) ;
im1g = rgb2gray(im1) ;
[fa,da] = vl_sift(im1g) ; % fa is 4x14869, da is 128x14869
perm = randperm(size(fa,2)) ;
start=-49;
int=49;
while start<length(fa)
    figure % image(im1) % start=start+50
    sel=perm(start:start+int)
    h1=vl_plotframe(fa(:,sel)) ;
    set(h1, 'color', 'y', 'linewidth',3);
    start;
    pause;
end

person wannabegeek    schedule 10.05.2017    source источник
comment
Да, ваши ключевые точки выглядят странно, поскольку большинство из них, кажется, лежат в однородных областях. Я думаю, будет лучше, если вы дадите более подробную информацию о своем вопросе (или фрагмент, показывающий, как вы вычисляете просеивания).   -  person Ash    schedule 10.05.2017
comment
@Ash Я добавил код к своему вопросу. Помогите мне, пожалуйста.   -  person wannabegeek    schedule 10.05.2017
comment
К сожалению, сейчас у меня нет доступа к matlab/octave, и я не очень хорошо знаю vfleat. Но я подозреваю, что ключевые точки верны, просто те, что с низким контрастом, не подавляются в показанном вами результате. Поскольку я не уверен, я бы просто предложил вам добавить теги octave/matlab к вашему вопросу, чтобы повысить видимость.   -  person Ash    schedule 10.05.2017
comment
@Эш, спасибо. Я усилил изображение. Теперь кажется, что ключевые точки обнаруживаются в более темных областях, но все же они не кажутся полезными областями для характерных признаков.   -  person wannabegeek    schedule 10.05.2017
comment
@ Сардар Усама, согласился и исправил. Спасибо.   -  person wannabegeek    schedule 10.05.2017


Ответы (1)


Ваш код не работает для меня. В этой строке сказано:

sel=perm(start:start+int)

Индексы нижнего индекса должны быть либо действительными положительными целыми числами, либо логическими.

Вы устанавливаете start=-49, что является отрицательным индексом. Также start=start+50 выдает ошибку... извините, я не могу воспроизвести ваш пример.

Не могли бы вы исправить свой код?

person Stefan G.    schedule 07.06.2017