【问题标题】:Segementing a 3-D matrix with MATLAB使用 MATLAB 分割 3D 矩阵
【发布时间】:2017-06-19 18:41:51
【问题描述】:

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

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

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

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

有人知道怎么做吗?

【问题讨论】:

    标签: matlab k-means spectral


    【解决方案1】:

    如果您详细说明 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 2014-10-23
      • 2013-09-21
      • 1970-01-01
      • 2015-06-16
      • 2020-04-09
      相关资源
      最近更新 更多