第六章 图像分割
实例:使用K-Means算法分割灰度图像和彩色图像
clear;
clc;
%首先使用K-Means算法分割灰度图像
%设定聚类中心个数
K1 = 2;
I = imread('shape.jpg');
figure,imshow(I),title('原始图像');
%获取图像规模
[m1, n1] = size(I);
%将图像拉成一维列向量
ReGray = reshape(I(:,:), m1*n1, 1);
%进行K-Means聚类,实现图像分割
Seg1 = kmeans(double(ReGray), K1, 'emptyaction','singleton');
%将分割结果(一维列向量)还原成图像
I1 = reshape(Seg1, m1, n1);
%使用彩色标签标记每个聚类并显示
figure,imshow(label2rgb(I1)),title('分割结果');
%然后使用K-Means算法分割彩色图像
%设定聚类中心个数
K2 = 2;
RGB = imread('lake.jpg');
figure,imshow(RGB),title('原始图像');
%获取图像规模
[m2, n2, c] = size(RGB);
%将RGB图像的三个维度(通道)分别拉伸成一维列向量
R = reshape(RGB(:,:,1), m2*n2, 1);
G = reshape(RGB(:,:,2), m2*n2, 1);
B &