Algorithm MATLAB输出图像中的K均值聚类
执行K表示K=3(分段)的聚类。因此,我: 1) 将RGB img转换为灰度 2) 将原始图像转换为nx1列矩阵 3) idx=kmeans(列矩阵) 4) output=idx,转换回与原始图像相同的尺寸 我的问题是: A 当我做imshow(输出)时,我得到一个纯白色的图像。但是,当我执行imshow(输出[05])时,它会显示输出图像。我知道0和5指定了显示范围。但我为什么要这么做 B) 现在,输出图像将被拆分为3段。如何设置阈值,以便分配 区域1的群集为0 1区域2的集群 2区域3的集群 因为我做聚类的目的是为了把图像分割成3个区域 非常感谢Algorithm MATLAB输出图像中的K均值聚类,algorithm,matlab,image-processing,k-means,Algorithm,Matlab,Image Processing,K Means,执行K表示K=3(分段)的聚类。因此,我: 1) 将RGB img转换为灰度 2) 将原始图像转换为nx1列矩阵 3) idx=kmeans(列矩阵) 4) output=idx,转换回与原始图像相同的尺寸 我的问题是: A 当我做imshow(输出)时,我得到一个纯白色的图像。但是,当我执行imshow(输出[05])时,它会显示输出图像。我知道0和5指定了显示范围。但我为什么要这么做 B) 现在,输出图像将被拆分为3段。如何设置阈值,以便分配 区域1的群集为0 1区域2的集群 2区域3的集群
问候。A:考虑到您的矩阵
输出
包含从1到3的标量值,imshow(output)
将其视为灰度矩阵,并假设整个值范围为0到255。这就是为什么约束颜色限制是必要的,否则您的图像是全白或几乎全白的
B:
output=output-1
A:鉴于矩阵output
包含从1到3的标量值,imshow(output)
将其视为灰度矩阵,并假设值的完整范围为0到255。这就是为什么约束颜色限制是必要的,否则您的图像是全白或几乎全白的
B:
output=output-1
正如Ryan所指出的,您的问题可能只是如何显示图像。下面是一个工作示例:
snow = rand(256, 256);
figure;
imagesc(snow);
nClusters = 3;
clusterIndices = kmeans(snow(:), nClusters);
figure;
imagesc(reshape(clusterIndices, [256, 256]));
正如Ryan指出的,您的问题可能只是如何显示图像。下面是一个工作示例:
snow = rand(256, 256);
figure;
imagesc(snow);
nClusters = 3;
clusterIndices = kmeans(snow(:), nClusters);
figure;
imagesc(reshape(clusterIndices, [256, 256]));
非常感谢你,瑞安。非常有帮助和迅速的回答。如果我可以扩展上述问题,我将如何用颜色重新进行上述操作?即不将图像从RGB转换为灰度?非常感谢Ryan。非常有帮助和迅速的回答。如果我可以扩展上述问题,我将如何用颜色重新进行上述操作?即不将图像从RGB转换为灰度?