基于模糊C-means算法的图像分割
up目录
一、理论基础
模糊c-均值聚类算法 fuzzy c-means algorithm (FCMA)或称( FCM)。在众多模糊聚类算法中,模糊C-均值( FCM) 算法应用最广泛且较成功,它通过优化目标函数得到每个样本点对所有类中心的隶属度,从而决定样本点的类属以达到自动对样本数据进行分类的目的。FCM算法是一种基于划分的聚类算法,它的思想就是使得被划分到同一簇的对象之间相似度最大,而不同簇之间的相似度最小。模糊C均值算法是普通C均值算法的改进,普通C均值算法对于数据的划分是硬性的,而FCM则是一种柔性的模糊划分。
1)分类数不定,根据不同要求对事物进行动态聚类,此类方法是基于模糊等价矩阵聚类的,称为模糊等价矩阵动态聚类分析法。
2)分类数给定,寻找出对事物的最佳分析方案,此类方法是基于目标函数聚类的,称为模糊C均值聚类。
3)在摄动有意义的情况下,根据模糊相似矩阵聚类,此类方法称为基于摄动的模糊聚类分析法
模糊的c均值聚类算法:-------- 一种模糊聚类算法,是k均值聚类算法的推广形式,隶属度取值为[0 1]区间内的任何一个数,提出的基本根据是“类内加权误差平方和最小化”准则;
模糊C 均值聚类算法(FCM,Fuzzy c-means) 是从硬C 均值聚类算法发展而来(HCM,Hardc-means )。
模糊c-均值聚类算法意在求解一个最小化问题即:
其中,uij为样本xj属于第i类的隶属度,故u是一个c×n的矩阵,xj就是第j个样本数据,ci为第i个聚类中心一共有c个,m则是一个大于1的加权常数一般取2,可由用户定义。 在这里每个样本对于不同类的隶属度之和被限制为1,但一般情况下模糊集合的隶属度通常加起来不为1。接下来我们需要把这个条件极值问题转化为无条件的极值问题, 这里用到的方法就是拉格朗日乘子法:
模糊聚类分析作为无监督机器学习的主要技术之一,是用模糊理论对重要数据分析和建模的方法,建立了样本类属的不确定性描述,能比较客观地反映现实世界,它已经有效地应用在大规模数据分析、数据挖掘、矢量量化、图像分割、模式识别等领域,具有重要的理论与实际应用价值,随着应用的深入发展,模糊聚类算法的研究不断丰富。
通过上面的讨论,我们不难看出FCM算法需要两个参数一个是聚类数目C,另一个是参数m。一般来讲C要远远小于聚类样本的总个数,同时要保证C>1。对于m,它是一个控制算法的柔性的参数,如果m过大,则聚类效果会很次,而如果m过小则算法会接近HCM聚类算法。
算法的输出是C个聚类中心点向量和C*N的一个模糊划分矩阵,这个矩阵表示的是每个样本点属于每个类的隶属度。根据这个划分矩阵按照模糊集合中的最大隶属原则就能够确定每个样本点归为哪个类。聚类中心表示的是每个类的平均特征,可以认为是这个类的代表点。
从算法的推导过程中我们不难看出,算法对于满足正态分布的数据聚类效果会很好,另外算法对孤立点是敏感的。
二、核心程序
...........................................................
I2 = im2double(imread('FLAIRimage.jpg'));
I2 = imadjust(I);
figure;imshow(I,[]);impixelinfo; % Show Image I
data = [I(:) I2(:)]; % data array
[center,U,obj_fcn] = fcm(data,7);
figure;
plot(obj_fcn);
% Finding the pixels for each class
maxU = max(U);
index1 = find(U(1,:) == maxU);
index2 = find(U(2,:) == maxU);
index3 = find(U(3,:) == maxU);
index4 = find(U(4,:) == maxU);
index5 = find(U(5,:) == maxU);
index6 = find(U(6,:) == maxU);
index7 = find(U(7,:) == maxU);
% Assigning pixel to each class by giving them a specific value
fcmImage(1:length(data))=0;
fcmImage(index1)= 1;
fcmImage(index2)= 0.8;
fcmImage(index3)= 0.6;
fcmImage(index4)= 0.4*0;
fcmImage(index5)= 0.2*0;
fcmImage(index6)= 0.1*0;
fcmImage(index7)= 0.0*0;
...................................................................
up80
三、测试结果
通过matlab2021a仿真结果如下:
相关文章
- 数字图像处理 基于形态学和距离变换的颗粒分割算法
- CV之IG之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成更高质量的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)案例应用
- CV之IG之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成更大尺寸的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)案例应用
- CV之NS之VGG16:基于Keras框架利用VGG16算法实现图像风格迁移设计(以设计《复仇者联盟3》灭霸图像风格迁移为例)案例应用
- CV之IS:基于pixellib库和coco数据集且加载.h5文件利用deeplabv3和xception算法实现图像语义分割/图像分割简单代码全实现(以热播电视剧《庆余年》视频片段为例)案例应用
- CV之IG:基于TF框架利用ResNet算法网络DIY自定义图像生成网络(定义卷积和反卷积)实现代码
- Interview之AI:深度学习算法工程师面试之常见专业知识考点(参数初始化策略(Lecun、Xavier/Glorot、Kaiming、基于BN的随机的参数初始化)、图像算法基础(ROI)
- 【有功-无功协调优化】基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化研究(Matlab代码实现)
- 基于小生境粒子群优化算法的考虑光伏波动性的主动配电网有功无功协调优化(Matlab代码实现)
- 【图像处理】基于 MATLAB 和蚁群算法的图像边缘检测
- 【图像处理】基于MATLAB和SRCNN算法实现图像超分辨率重建
- 基于GOA蚱蜢优化算法的KNN分类器最优特征选择matlab仿真
- 基于PSO粒子群优化算法的TSP路径规划matlab仿真
- m基于图像灰度共生矩阵纹理提取和GRNN神经网络的人口密度检测算法matlab仿真
- 基于matlab的有参考图像质量评价,使用多种算法进行图像质量评价仿真
- 基于蜣螂算法优化的SVM回归预测-附代码
- 智能优化算法应用:基于麻雀搜索算法的工程优化案例
- 智能优化算法应用:基于GWO优化的Renyi熵图像多阈值分割 - 附代码
- 基于混沌映射与差分进化自适应教与学优化算法-附代码
- 基于混沌映射的自适应樽海鞘群算法-附代码
- 基于惯性权值非线性递减的改进粒子群算法 - 附代码
- 【图像配准】基于互信息的图像配准算法:MI、EMI、ECC算法
- 重拾算法(3)——用458329个测试用例全面测试二叉树和线索二叉树的遍历算法
- 大规模异常滥用检测:基于局部敏感哈希算法——来自Uber Engineering的实践
- ML之KG:基于MovieLens电影评分数据集利用基于知识图谱的推荐算法(networkx+基于路径相似度的方法)实现对用户进行Top电影推荐案例
- 【车间调度FJSP】基于全球邻域和爬山优化算法的模糊柔性车间调度问题研究(Matlab代码实现)
- m固定相机模式下基于图像跟踪算法的Puma560机械臂自适应轨迹控制matlab仿真
- 基于visual-hull算法的图像三维重建matlab仿真
- Python基于OpenCV的图像去雾算法[完整源码&部署教程]