资源描述:
《hcm和fcm图像分割比较》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、课题名称:基于HCM的灰度图像分割预备知识:1.K—均值算法(HCM)依据准则函数进行分类,具体内容:先选择K个聚类中心,然后根据聚类准则对K个中心反复修改(用迭代法),直至分类合理。聚类过程中,聚类中心数目不变。属于一种硬分类。2.模糊C均值算法(FCM)将上述硬分类模糊化,引入隶属度函数,定义聚类损失函数,并使其最小化(用迭代法求解)。当算法收敛时,可得到各类聚类中心和各个样本对于各类的隶属度值,从而完成模糊聚类划分。Matlab自带了FCM函数,如下例:function[center,U,obj_fcn]=FCM(data,cluster_n,options)%FCM.m 采用模
2、糊C均值对数据集data聚为cluster_n类 %用法:% 1. [center,U,obj_fcn]=FCM(Data,N_cluster,options);% 2. [center,U,obj_fcn]=FCM(Data,N_cluster);%输入:% data ----nxm矩阵,表示n个样本,每个样本具有m的维特征值% N_cluster ----标量,表示聚合中心数目,即类别数% options ----4x1矩阵,其中% options(1): 隶属度矩阵U的指数,>1 (缺省值:2.0)% optio
3、ns(2): 最大迭代次数 (缺省值:100)% options(3): 隶属度最小变化量,迭代终止条件 (缺省值:1e-5)% options(4): 每次迭代是否输出信息标志 (缺省值:1)%输出:% center ----聚类中心% U ----隶属度矩阵% obj_fcn ----目标函数值% Example:% data=rand(100,2);% [center,U,obj_fcn]=FCM(data,2);% plot(data(:,1),
4、data(:,2),'o');% holdon;% maxU=max(U);% index1=find(U(1,:)==maxU);% index2=find(U(2,:)==maxU);% line(data(index1,1),data(index1,2),'marker','*','color','g');% line(data(index2,1),data(index2,2),'marker','*','color','r');% plot([center([12],1)],[center([12],2)],'*','color','k'
5、)% holdoff;3.图像分割基本原理:根据图像的组成结构和应用需求将图像划分为若干个互不相交的子区域的过程。这些子区域四某种意义下具有共同属性的像素的连通集合。常用方法有:1)以区域为对象进行分割,以相似性原则作为分割的依据,即可根据图像的灰度、色彩、变换关系等方面的特征相似来划分图像的子区域,并将各像素划归到相应物体或区域的像素聚类方法,即区域法;2)以物体边界为对象进行分割,通过直接确定区域间的边界来实现分割;3)先检测边缘像素,再将边缘像素连接起来构成边界形成分割。本课题要求采用聚类算法进行图像分割,即将样本像素归为两类(目标和背景),并以0或1来分别赋阈值,处理结果类
6、似于二值化。图像分割结果:1基于HCM的图像分割clc;clear;I=imread('14.jpg');figure,imshow(I)%原始图像I2=rgb2gray(I);%真彩变灰度figure,imshow(I2)%灰度图像I3=reshape(I2,10000,1);I4=im2double(I3);k=2;%任意确定二个聚类中心z1=I4(2000,:);z2=I4(7000,:);fori=1:10000%分别计算每个样本到个聚类中心的欧式距离f1=imsubtract(I4(i,:),z1);D1(:,i)=sqrt(f1*f1');f2=imsubtract(I4(i
7、,:),z2);D2(:,i)=sqrt(f2*f2');endD=[D1;D2];fori=1:10000%并按最近邻规则聚类ifD1(:,i)==min(D(:,i)')%样本中心稳定,则为最终聚类结果s1(i,:)=zeros(1,1);elses1(i,:)=ones(1,1);endenda1=reshape(s1,100,100);figure,imshow(a1)图1为RGB图像;图2为灰度图像;图3为聚类后的两类样本