执行K意味着使用k = 3(段)进行聚类 . 所以我:
1)将RGB img转换为灰度
2)将原始图像转换为n X 1列矩阵
3)idx = kmeans(column_matrix)
4)output = idx,返回到与原始图像相同的尺寸 .
我的问题是:
A
当我做imshow(输出)时,我得到一个纯白色的图像 . 但是,当我进行imshow(输出[0 5])时,它会显示输出图像 . 我知道0和5指定显示范围 . 但为什么我必须这样做?
B) 现在输出图像要分成右边的3个段 . 如何限制它以便我分配一个
对于区域11的簇,对于区域2的簇,对于区域3的簇,对于区域2 2的簇,对于区域11的簇,
因为我做这个聚类的重点是我可以将图像分成3个区域 .
非常感谢 .
亲切的问候 .
2 回答
A: 鉴于您的矩阵
output
包含范围从1到3的标量值,imshow(output)
将此视为灰度矩阵,并假设整个值范围为0到255.这就是为什么需要约束颜色限制,否则您的图像是全白或几乎全白 .B:
output = output - 1
正如Ryan所指出的,你的问题可能就是你如何显示图像 . 这是一个有效的例子: