一、实验题目:
基于聚类的彩色图像分割方法
二、实验目的:
采用聚类算法提取出图像中的真实目标,以便后续图像理解需要。
三、实验内容:
给定一幅灰度图像的图片,采用均值聚类算法将图像中的目标提取出来,以便后续目标识别和图像理解的需要。
四、预备知识:
图像处理概论、均值聚类算法原理。
五、实验原理:
图像分割的本质是将图像分割成相互不相交的区域,有的区域表示图像目标信息,有的区域表示图像背景信息。图像分割方法众多,在实际应用中得到广泛应用的是阈值法和聚类分割法。本实验采用均值聚类算法实现图像分割,其聚类算法如下:
C-均值聚类算法:
1.条件及约定
设待分类的模式特征矢量集为,类的数目是事先确定的。
2.基本思路
设方法取定类和选取个初始聚类中心,按最小距离原则将各模式分配到类中的某一类,之后不断地计算类心和调整个模式的类别,最终使各模式到其判属类别中心的距离平方之和最小。
3.算法步骤
(1)任选个模式特征矢量作为初始聚类中心。
(2)将待分类的模式特征矢量集中的模式逐个按最小距离原则分划给类中的某一类。
(3)计算重新分类后的各类中心。
因为这一步采取平均的方法计算调整后各类的中心,且定为类,故称为-均值法。
(4)如果,条件不成立转至(2)。
应用C-均值聚类算法实现图像分割:
这里假设图像分割成个区域,其图像大小为的灰度图像,任意位置处的灰度值为。因此,灰度图像可采用集合方式描述为。假设灰度图像中最小灰度值为,最大灰度值为,其中任意灰度级出现的总个数记为且满足,这里表示给定灰度图像中所有灰度总个数。采用C-均值聚类算法分割图像的算法过程如下:
这里强调的该分割算法仅考虑图像任意位置灰度值的大小,而没有考虑任意像素与其周围邻域像素之间的关系。
步骤1:从从图像的RGB从0至255中任意选取个不同大小的值作为图像分割成类的中心值,即采用0至255的整数初始化的值。
步骤2:将图像中所有不同位置像素的灰度值逐个按最小距离原则分划给类中的某一类,于是产生新的聚类。
步骤3:计算重新分类后的各类中心
因为这一步采取平均的方法计算调整后各类的中心,且定为类,故称为-均值法。
(4)如果,则结束;否则,,转至步骤2。
六、实验步骤:
(1) 选取一幅将彩色图像的图片;
(2) 读取图片内容像素值并存储于矩阵;
(3) 采用C-均值聚类算法实现图像3类分割;
(4) 将输出中图像中1类区域像素置为[255 0 0]代表红,2类区域像素置为[0 255 0]代表绿,3类区域像素置为[0 0 255]代表蓝色;
(5) 显示分割结果。
七、思考题目:
(1) 考虑像素与其邻域像素存在紧密的图像分割问题;
(2) 考虑灰度图像如何分割的问题。
部分代码:
实验原图和结果: