使用 MATLAB 分割 3-D 矩阵

问题描述 投票:0回答:1

我有一个表示高光谱图像的 3-D 矩阵:2 维表示不同的像素,1 维表示不同的光谱带。

我需要按以下方式分割该图像: 1. 将图像按像素划分为 2 部分。 2. 计算 2 个片段中每个片段的平均光谱值。 3. 将 2 个分段中每个分段中的所有像素设置为等于所述平均值。

最后,我需要将图像分为 2 个片段,同一片段中的所有像素等于该片段的光谱平均值。

我尝试过使用kmeans,但到目前为止没有成功。

有人知道该怎么做吗?

matlab k-means
1个回答
0
投票

如果您详细说明

kmeans()
的哪些内容不适合您,将会有所帮助。我怀疑您正在尝试在调用
kmeans
时保留图像尺寸(m x n 像素)。

如果跨行/列折叠,kmeans 应该能够通过其光谱带向量对每个像素进行分类。

[m,n,sps] size(data); %pixel row, pixel col, spectral band
numGroups = 2;
[idx,centers] = kmeans(reshape(data,[m*n,sps]),numGroups);
© www.soinside.com 2019 - 2024. All rights reserved.