灰度图像分割方法比较
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、基于FCM的图像分割(调用FCM函数)
clc
clear all
I=imread('14.jpg');
figure,imshow(I)
I2=rgb2gray(I);
figure,imshow(I2)
I3=reshape(I2,10000,1);
I4=im2double(I3);
[center,U,obj_fcn]=fcm(I4,2);
z1=center(1,:);z2=center(2,:);
for i=1:10000 %分别计算每个样本到个聚类中心的欧式距离f1=imsubtract(I4(i,:),z1);
D1(:,i)=sqrt(f1*f1');
f2=imsubtract(I4(i,:),z2);
D2(:,i)=sqrt(f2*f2');
end
D=[D1;D2];
for i=1:10000 %并按最近邻规则聚类if D1(:,i)==min(D(:,i)') %样本中心稳定,则为最终聚类结果s1(i,:)=zeros(1,1);
else
s1(i,:)=ones(1,1);
end
end
for i=1:10000
if D2(:,i)==min(D(:,i)')
s2(i,:)=zeros(1,1);
else
s2(i,:)=ones(1,1);
end
end
a1=reshape(s1,100,100);
a2=reshape(s2,100,100);
figure,imshow(a1) %样本S1组成的图像
figure,imshow(a2) %样本S2组成的图像
二、基于HCM的灰度图像分割
预备知识:
1.K—均值算法(HCM)
依据准则函数进行分类,具体内容:先选择K个聚类中心,然后根据聚类准则对K个中心反复修改(用迭代法),直至分类合理。聚类过程中,聚类中心数目不变。属于一种硬分类。
2.模糊C均值算法(FCM)
将上述硬分类模糊化,引入隶属度函数,定义聚类损失函数,并使其最小化(用迭代法求解)。当算法收敛时,可得到各类聚类中心和各个样本对于各类的隶属度值,从而完成模糊聚类划分。Matlab自带了FCM函数,如下例:
function [center, U, obj_fcn] = FCM(data, cluster_n, options)
% FCM.m 采用模糊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)
% options(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), data(:,2),'o');
% hold on;
% 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([1 2],1)],[center([1 2],2)],'*','color','k')
% hold off;
3.图像分割
基本原理:根据图像的组成结构和应用需求将图像划分为若干个互不相交的子区域的过程。这些子区域四某种意义下具有共同属性的像素的连通集合。常用方法有:
1)以区域为对象进行分割,以相似性原则作为分割的依据,即可根据图像的灰度、色彩、变换关系等方面的特征相似来划分图像的子区域,并将各像素划归到相应物体或区域的像素聚类方法,即区域法;
2)以物体边界为对象进行分割,通过直接确定区域间的边界来实现分割;
3)先检测边缘像素,再将边缘像素连接起来构成边界形成分割。
本课题要求采用聚类算法进行图像分割,即将样本像素归为两类(目标和背景),并以0或1来分别赋阈值,处理结果类似于二值化。
图像分割结果:
1基于HCM的图像分割
clc;
clear;
I=imread('14.jpg');