Как рассчитать Матрицу сходства изображения? - PullRequest
3 голосов
/ 20 апреля 2011

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

Я нашел эту ссылку: http://spectrallyclustered.wordpress.com/2010/06/05/sprint-1-k-means-spectral-clustering/

, которая, кажется, делает большую работу по объяснению общего процесса.Мой вопрос касается матрицы сродства.

При построении матрицы сродства (я назову это A), они упоминают, что матрица сродства должна иметь размер KxK для изображения Kxn.Другие эталонные реализации говорят, что матрица сродства для изображения MxN должна быть (M * N) x (M * N):

http://www.mathworks.com/matlabcentral/fileexchange/26354-spectral-clustering-algorithms

Какой из них является традиционным подходом?

При вычислении матрицы сродства я хотел знать, является ли каждая запись A (i, j) вычислением окрестности (например, сродством окрестности 3x3 или пикселей во всем изображении)?

Илилинеаризовать изображение в одномерный массив.

Создает матрицу (m * n) x (m * n) (матрицу сродства) и, перебирая массив одномерных изображений, применяет функцию сходства.чтобы пиксель я и каждый второй пиксель j.и сохраняет результат в матрице сродства.

(в основном двойное гнездо для цикла)

Я не в базе?или это примерно так выглядит?

Заранее спасибо,

ct

1 Ответ

3 голосов
/ 29 августа 2011

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

Относительно M, N и K; M * N = K. Оба выражения описывают количество объектов, которые будут сгруппированы, что в вашем случае является количеством пикселей.

Матрица сродства, A является прореженной версией матрицы подобия, S. Например. если два объекта / пикселя недостаточно похожи, они не являются смежными.

Один из способов построения матрицы смежности заключается в следующем:

S(i, j) = color_intensity_distance( pixel(i), pixel(j) )

A(i, j) = exp( - S(i,j) ), if S(i,j) <= epsilon
A(i, j) = 0, otherwise

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

Ссылка о спектральной кластеризации.

...