как измерить Косинус сходства между 2 изображениями


У меня есть популяционная матрица из 5 изображений с 49 выделенными признаками заметности. Я хочу вычислить косинусное сходство в Matlab между тестовым изображением с теми же извлеченными признаками 49.

2 2

2 ответа:

1) преобразуйте ваши изображения размером M строк X N столбцов в вектор M * N строк. Держите одно изображение в векторе u, а другое - в векторе v.

2) оцените: cosTheta = dot (u, v)/(norm (u)*norm (v)); [насколько я знаю, в matlab нет функции, которая это делает]

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

Вы можете использовать встроенную функцию matlab для получения косинусного расстояния:

pdist([u;v],'cosine')

, который возвращает "единицу минус Косинус включенного угла между точками". Затем вы можете вычесть ответ из единицы, чтобы получить "Косинус включенного угла" (подобие), например:

1 - pdist([u;v],'cosine')

Источник: попарное расстояние между парами объектов.