Прикрепить изображения к массиву knnsearch o/p

Я работаю над своим проектом по распознаванию образов, и я использую поиск knn для поиска ближайших соседей, проблема, с которой я сталкиваюсь, заключается в том, что когда я получаю o/p в порядке возрастания (ранг), это какой-то массив.

х = [v_2;v_3;v_4;v_5]; Обучающие образцы

у = v_1; образец изображения

IDX = knnsearch(x,y,'K',4);

o/p

IDX=[2 3 1 4] финал о/п

это показывает, что мой "образец изображения" сначала соответствует второму изображению, затем третьему и так далее...

Итак, вопрос в том, как я могу получить доступ к этим элементам массива. Я хочу прикрепить изображения к этим элементам, потому что я хочу отображать эти наиболее подходящие изображения.

например, в моей базе данных хранятся изображения img1, img2, img3, img4, так как o/p IDX=[2 3 1 4]

он должен сначала показать мне img2, затем img3, затем img1, наконец img4


person user3598602    schedule 03.05.2014    source источник


Ответы (1)


Первое, что вам нужно сделать, это сохранить все изображения в ячейке. 3 изображения хранятся в ячейке, называемой шаблонами. Затем с помощью idx выберите изображение. Код показан ниже. Изображения отображаются сверху вниз.

idx = [3 2 1];  output of knn algorithm
len = length(idx);  
templates = {img1,img2,img3}; images stored in cell
for i = 1:len
        num = idx(i);
        subplot(len,1,i);     
        imshow(templates{num},[]);   shows images as per content of idx
end; 

Надеюсь, это то, что вы искали...

person Ritesh    schedule 03.05.2014
comment
Спасибо! за твою помощь, брат; теперь, согласно приведенному выше коду, я получил свой вывод, действительно это много значит! теперь проблема в том, что эти изображения отображаются вертикально на одном участке, теперь помогите мне отобразить эти изображения по горизонтали или на разных фигурах. - person user3598602; 03.05.2014
comment
если вы хотите, чтобы изображения отображались горизонтально на одном рисунке, просто замените строку подзаголовка на эту. подзаголовок (1, len, i). И если вы хотите, чтобы изображения отображались на разных рисунках, замените эти две строки после num = idx(i); - person Ritesh; 04.05.2014
comment
да, братан, это сработало для меня! Еще раз спасибо за все, что вы сделали. - person user3598602; 04.05.2014