欢迎来到本博客❤️❤️❤️
博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
目录
1 概述
2 运行结果
3 参考文献
4 Matlab代码实现
图像分割是图像分析和模式识别的首要问题,也是图像处理的经典难题之一,它是图像分析和模式识别系统的重要组成部分,并决定图像的最终分析质量和模式识别的判别结果。所谓图像分割是指将图像中具有特殊意义的不同区域分开来,并使这些区域相互不相交,且每个区域应满足特定区域的一致性条件。
由于彩色图像提供了比灰度图像更为丰富的信息,因此彩色图像处理正受到人们越来越多的关注。彩色图像分割是彩色图像处理的重要问题,彩色图像分割可以看成是灰度图像分割技术在各种颜色空间上的应用,为了使该领域的研究人员对当前各种彩色图像分割方法有较全面的了解,因此本文基于遗传算法(聚类)进行彩色图像分割.
使用基于遗传算法的图像分割 进化聚类
目标函数:在聚类距离内 使用距离测量
测量图像特征:3个特征(R,G,B值)
它还由基于矩阵的输入样本示例组成 15 和 2 特征
部分代码:
clc;
clear;
close all;
%% Problem Definition
X = [1 1.5;2 2.5;3 3.5;1 1.5;2 2.5;3 3.5;1 1.5;2 2.5;3 3.5;1 1.5;2 2.5;3 3.5;1 1.5;2 2.5;3 3.5]; % [15x2]
k = 3; % no. of clusters
CostFunction=@(m) ClusteringCost(m, X); % Cost Function m = [3x2] cluster centers
VarSize=[k size(X,2)]; % Decision Variables Matrix Size = [3 2]
nVar=prod(VarSize); % Number of Decision Variables = 6
VarMin= repmat(min(X),1,k); % Lower Bound of Variables [3x1] of[1x2] = [3x2]
VarMax= repmat(max(X),1,k); % Upper Bound of Variables [3x1] of[1x2] = [3x2]
% Setting the Genetic Algorithms
ga_opts = gaoptimset('display','iter');
% running the genetic algorithm with desired options
[centers, err_ga] = ga(CostFunction, nVar,[],[],[],[],VarMin,VarMax,[],[],ga_opts);
m=centers;
g=reshape(m,2,3)'; % create a cluster center matrix(3(clusters) points in 2(features) dim plane)=[3x2]
d = pdist2(X, g); % create a distance matrix of each data points in input to each centers = [15x3]
% Assign Clusters and Find Closest Distances
[dmin, ind] = min(d, [], 2)
% ind value gives the cluster number assigned for the input = [15x1]
% Sum of Within-Cluster Distance
WCD = sum(dmin);
z=WCD; % fitness function contain sum of each data point to their corresponding center value set (aim to get it minimum)
% z = [1(inputs combinations) x 1]
[1][林开颜,吴军辉,徐立鸿.彩色图像分割方法综述[J].中国图象图形学报:A辑,2005,10(1):1-10
[2]Selva (2022). Color Image segmentation using genetic algorithm(clustering)