【图像分割】基于模糊聚类算法FCM的图像分割【Matlab 119期】【图像处理36】

伴随着模糊集理论的形成、发展和深化,RusPini率先提出模糊划分的概念。以此为起点和基础,模糊聚类理论和方法迅速蓬勃发展起来。针对不同的应用,人们提出了很多模糊聚类算法,比较典型的有基于相似性关系和模糊关系的方法、基于模糊等价关系的传递闭包方法、基于模糊图论的最大支撑树方法,以及基于数据集的凸分解、动态规划和难以辨别关系等方法。然而,上述方法均不能适用于大数据量的情况,难以满足实时性要求较高的场合,因此实际应用并不广泛。

模糊聚类分析按照聚类过程的不同大致可以分为三大类:

(1)基于模糊关系的分类法:其中包括谱系聚类算法(又称系统聚类法)、基于等价关系的聚类算法、基于相似关系的聚类算法和图论聚类算法等等。它是研究比较早的一种方法,但是由于它不能适用于大数据量的情况,所以在实际中的应用并不广泛。

(2)基于目标函数的模糊聚类算法:该方法把聚类分析归结成一个带约束的非线性规划问题,通过优化求解获得数据集的最优模糊划分和聚类。该方法设计简单、解决问题的范围广,还可以转化为优化问题而借助经典数学的非线性规划理论求解,并易于计算机实现。因此,随着计算机的应用和发展,基于目标函数的模糊聚类算法成为新的研究热点。

(3)基于神经网络的模糊聚类算法:它是兴起比较晚的一种算法,主要是采用竞争学习算法来指导网络的聚类过程。

在介绍算法之前,先介绍下模糊集合的知识。

HCM聚类算法

    首先说明隶属度函数的概念。隶属度函数是表示一个对象x 隶属于集合A 的程度的函数,通常记做μA(x),其自变量范围是所有可能属于集合A 的对象(即集合A 所在空间中的所有点),取值范围是[0,1],即0<=μA(x),μA(x)<=1。μA(x)=1 表示x 完全隶属于集合A,相当于传统集合概念上的x∈A。一个定义在空间X={x}上的隶属度函数就定义了一个模糊集合A,或者叫定义在论域X={x}上的模糊子集A’。对于有限个对象x1,x2,……,xn 模糊集合A’可以表示为:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
FCM算法流程图

FCM算法是目前比较流行的一种模糊聚类算法,究其原因大致有以下几个方面:首先,模糊C—均值泛函Jm仍是传统硬C一均值泛函J1的自然推广;硬C一均值泛函J1是一个应用十分广泛的聚类准则,对其在理论上的研究己经相当完善,这就为Jm的研究提供了良好的条件;数学上看,Jm与RS的希尔伯特空间结构(正交投影和均方逼近理论)有密切的关系,因此比其它泛函有更深厚的数学基础;最后,也是最重要的是该目标函数不仅在许多领域获得了非常成功的应用,而且以FCM算法为基础,人们提出的基于其它原型的模糊聚类算法,形成了一大批FCM类型的算法:如模糊C一线(FCL)、模糊C一面(FCP)等聚类算法,分别实现了对呈线状、超平面状结构模式子集(或聚类)的检测。

FCM算法应用到颜色迁移中

    钱小燕等人将聚类算法应用到色彩迁移中,提出了一种基于图像模糊颜色聚类的自适应色彩迁移算法。该算法首先将源图像和目标图像分别转换到lαβ颜色空间:利用FCM 算法把源图像和目标图像划分为具有不同颜色特征的聚类,然后分析图像中的颜色特征:分别算出每个域的匹配权值,对每个目标图像的匹配权值,从源图像中选取一个最接近域作为最佳匹配域;最后根据目标图像各聚类域与源图像中的匹配域之间的关系,引入隶属度因子,两个域的处理结果分别进行加权平均,获得色彩迁移结果。使用FCM的思想对图像进行聚类域划分的思路是:设准备处理图像I的大小是S×H,即对颜色聚类颜色分析的个数是N,N = S×H,则图像I可表示成集合,I={p1 ,p2 ...,pn }。图像被分为c类,每个类的聚类中心为V={v1,v2 ...,vc },用uik表示像素pk隶属于聚类中心Vi的隶属度,定义图像的隶属度矩阵U。具体算法如下:

步骤一:把源图像和目标图像分别从RGB转换到lαβ空间。

步骤二:确定待处理图像聚类域个数c,然后初始化聚类中心。假设加权指数m=2,设定处理的最大迭代次数为50。

步骤三:当迭代次数T 小于50 时,根据初始化聚类中心计算隶属度矩阵。如果pk≠vi,则对于所有的vi ( i=1,2,…,C ),利用下式计算隶属度矩阵。

在这里插入图片描述
在这里插入图片描述

%% 程序分享 
%--------------------------------------
 
clear
close all
clc
%% %%%%%%%%%%%%%%%图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 I=imread('3096.jpg');
 
if size(I,3) == 3
   I=rgb2gray(I);
else
end
I=im2double(I);
figure;imshow(I);title('(a)原始图像')
% I=I;%不加噪声
%I=imnoise(I,'speckle',deta_2);
% I=imnoise(I,'salt & pepper',0.05); %加噪图
% I=imnoise(I,'gaussian',0,0.01); % 加高斯噪声
figure;imshow(I);title('(b)加噪图像');
imwrite(I,'2.jpg');
[m,n]=size(I);
%k 聚类数目
k=2;
% k=3;
 
I4 = I(:);  %% 将图像灰度按列排列
%% ------------------------ fcm算法------------------------
fcm_spatial_mean_label=zeros(m*n,1);
t=cputime;
tic;
[O2, U2, obj_fcn2] = fcm(I4, k);
toc;
time_fcm_spatial_mean=cputime-t;
%% 最大隶属度原则
maxU2 = max(U2);   %隶属度最大  
for j=1:k
    index = find(U2(j, :) == maxU2);  %隶属度最大对应的像素位置
    fcm_spatial_mean_label(index) = j;    
end
labels2=reshape(fcm_spatial_mean_label,[m n]);
labels2=uint16(labels2);
 
%% 显示聚类分割图
labels2(find(labels2==1))=0;
labels2(find(labels2==2))=255;
labels2(find(labels2==3))=180;
labels2(find(labels2==4))=100;
labels2=uint8(labels2);
figure;imshow(labels2,[]);title('(c)聚类分割图');
imwrite(labels2,'3.1.tiff','tiff','Resolution',300);%输出结果,保存为tif图片
 

在这里插入图片描述
在这里插入图片描述
注:完整代码或者代写添加QQ2449341593
往期回顾>>>>>>
【Matlab 024期】【图像处理1】Matlab图像处理教程系列之图像压缩
【Matlab 025期】【图像处理2】Matlab图像处理教程系列之图像分割(一)
【Matlab 026期】【图像处理3】Matlab图像处理教程系列之图像分割(二)
【Matlab 029期】【图像处理4】Matlab指纹识别
【Matlab 030期】【图像处理5】银行卡号识别matlab源码
【Matlab 074期】【图像处理6】【图像聚类】基于FCM和改进的FCM脑部CT图像聚类处理
【Matlab 075期】【图像处理7】【图像评价】基于CCF算法的图像质量评价
【Matlab 076期】【图像处理8】【图像增强】基于局部对比度增强的CLAHE算法 --直方图增强
【Matlab 077期】【图像处理9】【图像融合】基于Frequency Partition的图像融合
【Matlab 078期】【图像处理10】【图像评价】基于svm的图像无参考质量评价
【图像边缘检测】基于最小二乘法的椭圆边缘检测matlab源码【Matlab 079期】【图像处理11】
【图像加密】基于混沌系统的图像加密解密matlab源码含GUI【Matlab 080期】【图像处理12】
【图像处理】基于DWT+DCT+PBFO改进图像水印隐藏提取matlab源码含GUI【Matlab 081期】【图像处理13】
【图像配准】基于sift算法的图像配准matlab源码【Matlab 082期】【图像处理14】
【图像融合】基于CBF算法的图像融合matlab源码【Matlab 083期】【图像处理15】
【图像分割】基于随机游走算法的图像分割matlab源码【Matlab 084期】【图像处理16】
【图像滤波】图像二维双边高斯滤波【Matlab 085期】【图像处理17】
【图像去噪】基于自适应形态学的图像去噪【Matlab 086期】【图像处理18】
【图像增强】基于DEHAZENET和HWD的水下去散射图像增强【Matlab 087期】【图像处理19】
【图像增强】PSO寻优ACE的图像增强matlab源码【Matlab 088期】【图像处理20】
【图像增强】基于区域相似变换函数和蜻蜓算法的灰度图像增强【Matlab 089期】【图像处理21】
【图像重建】图像重建之ASTRA算法【Matlab 090期】【图像处理22】
【图像分割】基于四叉树图像分割matlab源码【Matlab 091期】【图像处理23】
【图像分割】心脏中心线提取【Matlab 092期】【图像处理24】
【图像识别】基于svm植物叶子疾病检测和分类【Matlab 093期】【图像处理25】
【图像识别】基于模板匹配之手写数字识别系统GUI界面【Matlab 094期】【图像处理26】
【图像识别】基于不变矩的数字验证码识别含GUI界面【Matlab 095期】【图像处理27】
【图像识别】条形码识别系统【Matlab 096期】【图像处理28】
【图像识别】基于RGB和BP神经网络的人民币识别系统含GUI界面【Matlab 097期】【图像处理29】
【图像识别】基于cnn卷积神经网络之验证码识别matlab源码【Matlab 098期】【图像处理30】
【图像分类】基于极限学习分类器对遥感图像分类【Matlab 099期】【图像处理31】
【图像直线拟合】基于最小二乘法的图像直线拟合并平分角平分线【Matlab 100期】【图像处理32】
【图像去雾】基于暗通道图像去雾【Matlab 101期】【图像处理33】
【图像变换】DIBR-3D图像变换(3D Image Warping)【Matlab 117期】【图像处理34】
【图像分割】基于形态学重建和过滤改进FCM算法(FRFCM)的的图像分割【Matlab 118期】【图像处理35】

猜你喜欢

转载自blog.csdn.net/TIQCmatlab/article/details/112647194