✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。
🍎 往期回顾关注个人主页:Matlab科研工作室
🍊个人信条:格物致知,完整Matlab代码及仿真咨询内容私信。
🔥 内容介绍
打开一张风景照,我们希望快速提取出蓝天、绿树、草地;处理医学影像时,需要精准分割出病变组织与正常组织;在工业质检中,要从产品图像里识别出不同颜色的部件 —— 这些需求的核心,都是图像颜色分割:根据像素的颜色特征,将图像划分成多个具有相同或相似色彩属性的区域。传统颜色分割方法(如阈值分割、K-Means 聚类)要么依赖人工调参(如手动设定颜色阈值),要么易陷入局部最优(如 K-Means 初始聚类中心随机导致结果不稳定),难以应对复杂场景(如光照不均、色彩渐变的图像)。而粒子群优化(PSO)算法的引入,为图像颜色分割提供了 “智能寻优” 的新思路,能自动找到最优颜色分类标准,让分割结果更精准、更稳定。
一、先理清:图像颜色分割的 “核心难点”
要理解 PSO 的价值,首先得看清传统颜色分割面临的困境:
1. 人工依赖强:阈值选择 “靠经验、凭感觉”
传统阈值分割(如 Otsu 算法的扩展)需要手动设定颜色通道(RGB、HSV)的分割阈值,比如 “将 RGB 通道中 R>200、G<100、B<100 的像素归为红色区域”。但面对色彩丰富的图像(如彩虹、花海),阈值组合成百上千,人工试错效率极低;且光照变化会导致同一物体的颜色值波动(如阳光下的树叶偏亮、阴影下的树叶偏暗),固定阈值很容易分割出错。
2. 局部最优陷阱:K-Means 的 “初始值魔咒”
K-Means 聚类是颜色分割的常用方法,通过预设聚类数量 K,随机选择 K 个初始颜色中心,再迭代优化聚类结果。但初始中心的随机性会导致算法 “偏航”:比如分割 “蓝天 + 白云 + 草地” 的图像时,若初始中心靠近白云和蓝天的过渡色,最终会把部分蓝天误归为白云,陷入局部最优解,无法得到全局最优的颜色分类。
3. 复杂场景适配难:光照、噪声的 “干扰难题”
实际图像常存在光照不均(如一半亮、一半暗的室内场景)、噪声(如老照片的杂色点),传统方法难以平衡 “颜色相似性” 与 “区域连续性”。比如分割医学超声图像时,病变区域与正常区域的颜色差异小且受噪声干扰,传统 K-Means 会把噪声点误归为病变区域,导致分割精度下降。
二、PSO 适配颜色分割:把 “色彩分类” 变成 “寻优问题”
PSO 算法的核心是 “模拟群体觅食找最优解”,而图像颜色分割的本质是 “找到最优的颜色分类标准”—— 两者的逻辑天然契合。我们可以将颜色分割问题转化为 PSO 的寻优场景:
1. 核心映射:PSO 术语与颜色分割的对应关系
要让 PSO “理解” 颜色分割任务,需先建立术语映射:
- “粒子”= 一组颜色分割参数:根据分割方法不同,参数可以是 “颜色阈值组合”(如 RGB 三通道的阈值 T_R、T_G、T_B),或 “聚类中心坐标”(如 HSV 颜色空间中 K 个聚类中心的 H、S、V 值);
- “适应度值”= 分割结果的 “优秀程度”:用评价指标(如类内方差最小化、类间方差最大化、分割准确率)衡量分割效果,适应度值越高,说明该组参数对应的分割结果越优;
- “全局最优解”= 最优分割参数:粒子群通过迭代,最终找到适应度最高的参数组合,用这组参数就能实现精准的颜色分割。
比如在 RGB 图像阈值分割中,一个粒子可以表示为(T_R=180,T_G=120,T_B=90),适应度值则是用这组阈值分割后,“目标区域(如红色果实)的像素准确率”—— 准确率越高,适应度值越高。
2. 优势适配:PSO 如何解决传统方法的痛点?
- 告别人工调参:PSO 通过群体智能自动搜索最优参数,无需人工设定阈值或聚类中心,即使是色彩复杂的图像,也能通过迭代找到最优解;
- 跳出局部最优:PSO 的 “个体最优 + 全局最优” 引导机制,能让粒子跳出局部最优区域(如 K-Means 的初始中心陷阱),探索更广阔的解空间,找到全局最优分割参数;
- 抗干扰能力强:通过设计合理的适应度函数(如结合 “颜色相似性” 与 “区域连续性”),PSO 能在光照不均、噪声干扰的场景下,优先选择 “分割区域更完整、噪声更少” 的参数,提升分割鲁棒性。
三、实战流程:基于 PSO 的图像颜色分割步骤
以 “RGB 图像的 K-Means 颜色聚类分割” 为例(PSO 优化 K-Means 的初始聚类中心),详细拆解实现步骤:
1. 步骤 1:图像预处理 —— 简化颜色空间,减少干扰
- 颜色空间转换:将 RGB 图像转换为 HSV 空间(H:色相,S:饱和度,V:明度),因为 HSV 空间更符合人眼对颜色的感知,且 V 通道(明度)能与光照变化分离,减少光照干扰;
- 去噪处理:用高斯滤波去除图像噪声(如杂色点),避免噪声影响颜色特征提取,确保后续分割的准确性。
2. 步骤 2:PSO 参数初始化 —— 定义粒子与解空间
- 确定粒子维度:若需分割 K 类颜色(如蓝天、白云、草地,K=3),每个聚类中心在 HSV 空间有 3 个参数(H、S、V),则每个粒子的维度为 K×3=9(如粒子 =[H1,S1,V1,H2,S2,V2,H3,S3,V3],对应 3 个聚类中心的 HSV 值);
- 设定解空间范围:根据 HSV 空间的取值范围(H:0-360,S:0-1,V:0-1),限定每个粒子维度的取值区间,避免参数超出合理范围;
- 初始化粒子群:随机生成 N 个粒子(如 N=50),每个粒子的参数值在解空间内随机分配,作为初始候选聚类中心。
3. 步骤 3:适应度函数设计 —— 衡量分割效果
适应度函数是 PSO 的 “指挥棒”,决定了粒子的搜索方向。针对颜色聚类分割,常用 “类内方差最小化” 作为适应度函数:
- 计算类内方差:对每个粒子(聚类中心),将图像中每个像素分配到 “距离最近的聚类中心”(距离用欧氏距离计算,如像素 HSV 值与聚类中心 HSV 值的欧氏距离),再计算每个聚类内部的像素颜色方差;
- 适应度值计算:适应度值 = 1/(所有聚类的类内方差之和)—— 类内方差越小,说明同一聚类内的像素颜色越相似,分割效果越好,适应度值越高。
4. 步骤 4:PSO 迭代优化 —— 寻找最优聚类中心
- 记录最优位置:每个粒子记录 “个体最优位置”(自身迭代过程中适应度最高的参数)和 “全局最优位置”(所有粒子迭代过程中适应度最高的参数);
- 更新粒子速度与位置:根据 PSO 的速度更新公式(速度 = 惯性权重 × 旧速度 + 认知因子 × 随机数 ×(个体最优 - 当前位置)+ 社会因子 × 随机数 ×(全局最优 - 当前位置)),调整每个粒子的参数值(聚类中心),确保粒子向更优方向移动;
- 判断收敛:重复迭代(如迭代 100 次),若全局最优适应度值连续 10 次迭代无明显提升,或达到最大迭代次数,停止迭代,此时的全局最优位置就是 “最优聚类中心”。
5. 步骤 5:图像分割与结果输出
用 PSO 找到的最优聚类中心,对预处理后的图像进行 K-Means 聚类分割:将每个像素分配到距离最近的聚类中心,并用不同颜色标记不同聚类区域(如蓝天标为蓝色、白云标为白色、草地标为绿色),最终输出分割后的图像。
⛳️ 运行结果




📣 部分代码
%% Color-Based Segmentation Using PSO Clustering
% Edited code. Original Code taken from MATLAB examples.
clear all
clc
close all
%% Step 1: Read Image
he = imread('hestain.png');
figure,
imshow(he), title('H&E image');
text(size(he,2),size(he,1)+15,...
'Image courtesy of Alan Partin, Johns Hopkins University', ...
'FontSize',7,'HorizontalAlignment','right');
%% Step 2: Convert Image from RGB Color Space to L*a*b* Color Space
cform = makecform('srgb2lab');
lab_he = applycform(he,cform);
%% Step 3: Classify the Colors in 'a*b*' Space Using K-Means Clustering
ab = double(lab_he(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
ab = reshape(ab,nrows*ncols,2);
nColors = 3;
[cluster_idx, cluster_center] = pso(ab,nColors);
%% Step 4: Label Every Pixel in the Image Using the Results from KMEANS
pixel_labels = reshape(cluster_idx,nrows,ncols);
figure,
imshow(pixel_labels,[]), title('image labeled by cluster index');
%% Step 5: Create Images that Segment the H&E Image by Color.
segmented_images = cell(1,3);
rgb_label = repmat(pixel_labels,[1 1 3]);
for k = 1:nColors
color = he;
color(rgb_label ~= k) = 0;
segmented_images{k} = color;
end
figure,
imshow(segmented_images{1}), title('objects in cluster 1');
%%
figure,
imshow(segmented_images{2}), title('objects in cluster 2');
%%
figure,
imshow(segmented_images{3}), title('objects in cluster 3');
🔗 参考文献
🎈 部分理论引用网络文献,若有侵权联系博主删除
👇 关注我领取海量matlab电子书和数学建模资料
🏆团队擅长辅导定制多种科研领域MATLAB仿真,助力科研梦:
🌟 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱调度、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划(2E-VRP)、充电车辆路径规划(EVRP)、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题、港口调度、港口岸桥调度、停机位分配、机场航班调度、泄漏源定位、冷链、时间窗、多车场等、选址优化、港口岸桥调度优化、交通阻抗、重分配、停机位分配、机场航班调度、通信上传下载分配优化
🌟 机器学习和深度学习时序、回归、分类、聚类和降维
2.1 bp时序、回归预测和分类
2.2 ENS声神经网络时序、回归预测和分类
2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类
2.4 CNN|TCN|GCN卷积神经网络系列时序、回归预测和分类
2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类
2.7 ELMAN递归神经网络时序、回归\预测和分类
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类
2.9 RBF径向基神经网络时序、回归预测和分类
2.10 DBN深度置信网络时序、回归预测和分类
2.11 FNN模糊神经网络时序、回归预测
2.12 RF随机森林时序、回归预测和分类
2.13 BLS宽度学习时序、回归预测和分类
2.14 PNN脉冲神经网络分类
2.15 模糊小波神经网络预测和分类
2.16 时序、回归预测和分类
2.17 时序、回归预测预测和分类
2.18 XGBOOST集成学习时序、回归预测预测和分类
2.19 Transform各类组合时序、回归预测预测和分类
方向涵盖风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、用电量预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
🌟图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
🌟 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、 充电车辆路径规划(EVRP)、 双层车辆路径规划(2E-VRP)、 油电混合车辆路径规划、 船舶航迹规划、 全路径规划规划、 仓储巡逻、公交车时间调度、水库调度优化、多式联运优化
🌟 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化、车辆协同无人机路径规划、
🌟 通信方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化、水声通信、通信上传下载分配
🌟 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化、心电信号、DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测
🌟电力系统方面
微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电、电/冷/热负荷预测、电力设备故障诊断、电池管理系统(BMS)SOC/SOH估算(粒子滤波/卡尔曼滤波)、 多目标优化在电力系统调度中的应用、光伏MPPT控制算法改进(扰动观察法/电导增量法)、电动汽车充放电优化、微电网日前日内优化、储能优化、家庭用电优化、供应链优化
🌟 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长 金属腐蚀
🌟 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合、SOC估计、阵列优化、NLOS识别
🌟 车间调度
零等待流水车间调度问题NWFSP 、 置换流水车间调度问题PFSP、 混合流水车间调度问题HFSP 、零空闲流水车间调度问题NIFSP、分布式置换流水车间调度问题 DPFSP、阻塞流水车间调度问题BFSP
👇
1374

被折叠的 条评论
为什么被折叠?



