2017-02-02 13 views
0

У меня есть трехмерная матрица, представляющая гиперспектральное изображение: 2 измерения представляют разные пиксели, а 1 размер представляет собой различные спектральные полосы.Смещение трехмерной матрицы с помощью MATLAB

Мне нужно сегментировать это изображение следующим образом: 1. разделите изображение по пикселям на 2 сегмента. 2. Рассчитайте среднее спектральное значение для каждого из двух сегментов. 3. Установите все пиксели в каждом из двух сегментов равными указанному среднему значению.

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

Я пробовал использовать kmeans, но пока не добился успеха.

Есть ли у кого-нибудь идеи, как это сделать?

ответ

0

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

Если вы рухнете через строки/столбцы, kmeans должен иметь возможность классифицировать каждый пиксель по его спектральному диапазону.

[m,n,sps] size(data); %pixel row, pixel col, spectral band 
numGroups = 2; 
[idx,centers] = kmeans(reshape(data,[m*n,sps]),numGroups); 

 Смежные вопросы

  • Нет связанных вопросов^_^