Я работаю над сравнением нескольких изображений. У меня есть эти данные изображения в виде векторов-столбцов матрицы, называемой «изображения». Я хочу оценить сходство изображений, сначала вычислив их евклидово расстояние. Затем я хочу создать матрицу, по которой я могу выполнять несколько случайных блужданий. Прямо сейчас мой код выглядит следующим образом:
% clear
% clc
% close all
%
% load tea.mat;
images = Input.X;
M = zeros(size(images, 2), size (images, 2));
for i = 1:size(images, 2)
for j = 1:size(images, 2)
normImageTemp = sqrt((sum((images(:, i) - images(:, j))./256).^2));
%Need to accurately select the value of gamma_i
gamma_i = 1/10;
M(i, j) = exp(-gamma_i.*normImageTemp);
end
end
Однако моя матрица M имеет значение 1 вдоль главной диагонали и нули в других местах. Я ожидаю «большие» значения для первых нескольких элементов каждой строки и «маленькие» значения для элементов с индексом столбца> 4. Может ли кто-нибудь объяснить, что не так? Любые советы приветствуются.