我有一个表示高光谱图像的3-D矩阵:2维表示不同的像素,1维表示不同的光谱带。
我需要用以下方式分割这张图片: 1.按像素将图片分成2个部分。2.计算两个分段的平均谱值。3.将2个分段中的每个分段中的所有像素设置为等于所述平均值。
最后,我需要将图像分成2个部分,同一部分中的所有像素都等于该部分的光谱平均值。
我尝试过使用kmeans,但到目前为止还没有成功。
有谁知道怎么做吗?
发布于 2017-02-03 00:39:20
如果您详细说明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);
https://stackoverflow.com/questions/42006530
复制相似问题