图像处理基于matlab压缩系数的粒子群和重力搜索算法图像的多级阈值分割含matlab源码1888期(代码片段)

海神之光 海神之光     2022-11-28     268

关键词:

一、多级阈值分割简介(具体理论见参考文献)

1 引言
图像分割是计算机视觉领域的一个前沿研究领域,是图像分析中非常重要的预处理步骤。分割的目标是将图像的表示简化或更改为更有意义且更易于分析的内容。多年来,该领域已经取得了大量的研究成果。一般而言,目前使用的图像分割方法可概括为基于区域的方法、基于边界的方法、基于聚类的方法以及基于阈值的方法四大类。阈值技术是用于分割各种类型图像的几种方法中最为流行的一种。图像阈值即从背景中提取场景中的对象,这有助于分析和解释图像。传统的多层次阈值法对于双层阈值处理是有效的,因为其简单、鲁棒性好。然而,由于利用穷举搜索寻找最优阈值,所以需要大量计算成本。近年来,研究人员提出了许多卓越的阈值分割技术,试图应用进化算法和智能优化法来获得最优阈值。

基于此,本文建立了一种基于粒子群优化算法的多级图像阈值分割。

2 粒子群优化算法概述
粒子群优化 (PSO) 算法是一种常用的进化寻优技术,它起源于对鸟群捕食行为的研究。其基本思想是通过群体中各个个体之间的协作以及信息共享来寻找最优解。

在PSO算法中,鸟群演变为一群没有质量也没有体积的微粒,并将其延伸到了N维空间中。在N维空间中,每个粒子i的位置由矢量Xi= (x1, x2,…,xN) 表示,而飞行速度则由矢量Vi= (v1, v2,…,vN) 表示。其中每个粒子都会对应一个适应值 (fitness value) ,这个适应值是根据目标函数设定的。

在这一过程中,每个粒子都知道当前发现的最佳位置pbest以及现在所处的位置Xi。而且粒子i还知道当前群体中所有粒子发现的最佳位置gbest (gbest即pbest中的最好值) 。各个粒子通过自身的位置信息,并结合其他粒子的位置信息来决定自己的运动方向。PSO算法的初始化就是一群随机粒子,即随机解。而在每一次的迭代过程中,粒子将通过分析pbest和gbest两个极值随时改变运动方向。粒子通过以下公式对速度vi和位置xi进行实时更新以寻求迭代过程中的最优解。

其中:rand () 是介于0与1的随机数;ω为惯性因子;c1和c2是学习因子,通常c1=c2=2。

二、部分源代码


                      
%              用于多级图像阈值的 CPSOGSA
% 
  
clear all
close all
clc

% 参数初始化
%      I = imread('Aeroplane.tiff');
   I = imread('Cameraman.tiff');
 
  level = 5; %% Threshold = level-1 
% 
 N_PAR = level;                          %阈值数(级别数-1)(维度)
 dim = N_PAR;  
% 
 n = 15;                                  % 群的大小“对象数”%%% 默认值 (n = 15)
 Max_Iteration  = 300;                    % “迭代”的最大数量 %%% 默认(Max_Iteration = 300% 
if size(I,3) == 1 %灰度图像
[n_countR, x_valueR] = imhist(I(:,:,1));
end
Nt = size(I,1) * size(I,2); 
 
% %Lmax 表示颜色段 0 - 256

Lmax = 256;   %图像中考虑了 256 个不同的最大级别(即 0255for i = 1:Lmax
    if size(I,3) == 1  
        %灰度图像
        probR(i) = n_countR(i) / Nt;
    end
end
if size(I,3) == 1
    up = ones(n,dim) * Lmax;
    low = ones(n,dim);
end
 tic
 RunNo  = 1;   
    for k = [ 1 : RunNo ]  
       [CPSOGSA_bestit,CPSOGSA_bestF,CPSOGSA_Fit_bests]= CPSOGSA(I, Lmax, n,Max_Iteration,low,up,dim, level, probR);
       BestSolutions1(k) = CPSOGSA_bestF; 
 disp(['Run # ' , num2str(k),'::' 'Best estimates =',num2str(CPSOGSA_bestit)]);         % CPSOGSA
    end  
% /* Boxplot Analysis */
   figure
   boxplot([BestSolutions1'],'CPSOGSA');
   color = [([1 0 0])];
   h = findobj(gca,'Tag','Box'); 
   for j=1:length(h) 
   patch(get(h(j),'XData'),get(h(j),'YData'),color(j));
   end 
   title ('\\fontsize15\\bf 飞机 (k=2)');
   % %  title ('\\fontsize15\\bf  Cameraman (k=2)');
   xlabel('\\fontsize15\\bf 算法');
   ylabel('\\fontsize15\\bf 最优适度值');
   box on
% % % 

% /* Graphical Analysis*/
figure
 plot(CPSOGSA_Fit_bests,'DisplayName','CPSOGSA','Color','b','LineStyle','-','LineWidth',3);
 disp( ['Time_CPSOGSA =', num2str(toc)]); 
 title ('\\fontsize15\\bf Aeroplane (k=2)'); % k=2,4,6,8,10
 % %  title ('\\fontsize15\\bf Cameraman (k=2)');
 xlabel('\\fontsize15\\bf 迭代');
 ylabel('\\fontsize15\\bf 适度值');
 legend('\\fontsize12\\bf CPSOGSA');
 %
 %
 gBestR = sort(CPSOGSA_bestit);
 Iout = imageGRAY(I,gBestR);
 Iout2 = mat2gray(Iout); 
 
% % Show results on images  

figure
imshow(Iout)
    
figure
imshow(I)
    
% % 结果显示

intensity = gBestR(1:dim-1);  
STDR  = std(CPSOGSA_Fit_bests)              %Standard deviation of fitness values       
MSEV = MSE(I, Iout)                         %Mean Square Error
PSNRV = PSNR(I, Iout)                       %PSNR between original image I and the segmented image Iout
SSIMV = ssim (I, Iout)                      %SSIM Quality Measure
FSIMV = FeatureSIM (I, Iout)                %FSIM Quality Measure
Best_Fitness_Value= CPSOGSA_Fit_bests(k)    %Best fitness
     
% % 在直方图上绘制阈值
figure 
plot(probR)
    hold on
vmax = max(probR);
for i = 1:dim-1
    line([intensity(i), intensity(i)],[0 vmax],[1 1],'Color','r','Marker','.','LineStyle','-')
    title ('\\fontsize15\\bf 飞机 (k=2)');
% title ('\\fontsize15\\bf  Cameraman (k=2)');
    xlabel('\\fontsize15\\bf 灰度级');
    ylabel('\\fontsize15\\bf 频率');
    hold off
end    

三、运行结果





四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]吕福起,李霄民.基于粒子群优化算法和模糊熵的多级阈值图像分割算法[J].计算机应用研究. 2019,36(09)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

pid优化基于matlab粒子群和遗传算法pid控制器优化设计含matlab源码1311期

一、粒子群算法简介1粒子群算法简介1.1引言自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在。生物学家CraigReynolds在1987年提出了一个非常有影响的鸟群聚集模型,在他的仿真中,每一个个体都遵循:避免与邻域个... 查看详情

优化控制基于matlab粒子群算法优化pid船舶航迹控制含matlab源码2332期

⛄一、粒子群算法优化PID简介1PID控制器原理PID控制器,由比例P、积分I和微分D3个参数所构成.作为二阶线性控制器,比例、积分和微分这3个参数可以直接影响PID控制器的控制效果.所以,通过对比例、积分和微分3个参数进行... 查看详情

图像分割基于matlab粒子群算法优化模拟退火算法图像分割含matlab源码2020期

...化模拟退火算法图像分割简介(具体理论见参考文献)1基于模拟退火思想的粒子群算法1.1基本PSO算法首先,粒子群算法是由Eberhan博士和Kennedy博士最先提出的全局优化进化算法。该算法源于对鸟群捕食行为的灵感,其基本思想是通... 查看详情

图像分割基于matlab粒子群算法优化模拟退火算法图像分割含matlab源码2020期

...退火算法图像分割简介(具体理论见参考文献)1基于模拟退火思想的粒子群算法1.1基本PSO算法首先,粒子群算法是由Eberhan博士和Kennedy博士最先提出的全局优化进化算法。该算法源于对鸟群捕食行为的灵感,其基本思想是通... 查看详情

目标搜索基于matlab运动编码粒子群算法优化(mpso)无人机搜索丢失目标含matlab源码2254期(代码片段)

...一、运动编码粒子群算法简介1粒子群算法PSO算法是一种基于群体智能的随机优化方法。在PSO中,粒子群模拟鸟群行为在搜索空间中探索(全局搜索)和开发(局部搜索),最终找到全局最优解。粒子的速... 查看详情

基于matlab编程的粒子群算法优化阈值分割,基于最大信息熵粒子群优化阈值分割

...独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等... 查看详情

matlab基于混合粒子群算法的tsp搜索算法matlab优化算法二十(代码片段)

基于混合粒子群算法的TSP搜索算法标准粒子群算法通过追随个体极值和群体极值完成极值寻优,虽然操作简单,且能够快速收敛,但是随着迭代次数的不断增加,在种群收敛集中的同时,各粒子也越来越相似&#... 查看详情

matlab基于混合粒子群算法的tsp搜索算法matlab优化算法二十(代码片段)

基于混合粒子群算法的TSP搜索算法标准粒子群算法通过追随个体极值和群体极值完成极值寻优,虽然操作简单,且能够快速收敛,但是随着迭代次数的不断增加,在种群收敛集中的同时,各粒子也越来越相似&#... 查看详情

图像分割基于matlabkmean聚类分水岭oust粒子群算法优化脂肪肝图像分割含matlab源码2277期

...易陷入局部极小值而不能得到全局最优解。PSO算法是一种基于群体的具有全局寻优能力的优化方法。本文将FCM聚类算法和PSO算法结合起来,将FCM聚类算法的聚类准则函数作为PSO算法中的粒子适应度函数,具体步骤如下:(1)读入待分割... 查看详情

阙值分割基于matlab粒子群算法自适应多阈值图像分割含matlab源码1459期(代码片段)

一、粒子群算法自适应多阈值图像分割简介理论知识参考:【基础教程】基于matlab图像处理图像分割【含Matlab源码191期】粒子群优化的多阈值图像自分割算法二、部分源代码clc;clear;closeall;%%输入图像;Imag=imread(\'24063.jpg\') 查看详情

阙值分割基于matlab粒子群算法自适应多阈值图像分割含matlab源码1459期(代码片段)

一、粒子群算法自适应多阈值图像分割简介理论知识参考:【基础教程】基于matlab图像处理图像分割【含Matlab源码191期】粒子群优化的多阈值图像自分割算法二、部分源代码clc;clear;closeall;%%输入图像;Imag=imread(\'24063.jpg\') 查看详情

图像增强基于matlabgsa灰度图像增强含matlab源码1172期(代码片段)

一、简介基于matlabGSA灰度图像增强:引力搜索算法(GSA)是一种基于引力和质量相互作用定律的优化算法。该算法基于牛顿引力:“宇宙中的每个粒子都以与力乘积成正比的力吸引每个其他粒子。它们的质量与它... 查看详情

图像分割基于matlab粒子群算法和ostu和分水岭和k-means脂肪肝水平识别含matlab源码2397期

...易陷入局部极小值而不能得到全局最优解。PSO算法是一种基于群体的具有全局寻优能力的优化方法。本文将FCM聚类算法和PSO算法结合起来,将FCM聚类算法的聚类准则函数作为PSO算法中的粒子适应度函数,具体步骤如下:(1)读入待分割... 查看详情

基于spiht小波变换的图像解压缩matlab仿真,输出psnr值评价图像解压后质量(代码片段)

...二、核心程序三、测试结果一、理论基础    SPIHT算法基于分层树的集合划分算法(SetPartitioninginHierarchicalTrees,SPIHT)改进了内嵌零树编码算法(EZW)。在对图像进行小波变换后,它更有效地利用了不同... 查看详情

图像融合基于matlabdct域多焦点图像融合含matlab源码1973期(代码片段)

一、基于DCT变换的图像融合算法简介在图像融合过程中,最主要的就是如何提取低高频系数以及低高频系数的融合准则。基于DCT变换的图像融合算法原理如图2所示。图2DCT融合算法原理算法步骤如下。步骤1精确配准待融合的源图... 查看详情

elm预测基于matlab引力搜索算法优化极限学习机预测(含前后对比)含matlab源码2205期(代码片段)

一、引力搜索算法简介GSA是伊朗的克曼大学教授RASHEDI等于2009年提出的一种新型智能优化算法,算法灵感来源于粒子受万有引力的作用。它可以理解为众多的粒子向具有最大惯性质量的粒子不断靠近的过程。算法中,种群... 查看详情

优化求解基于matlab遗传算法结合粒子群算法求解单目标优化问题含matlab源码1659期(代码片段)

一、GA-PSO混合优化算法的基本思想对于遗传算法来讲,传统的遗传算法中变异算子是对群体中的部分个体实施随机变异,与历史状态和当前状态无关。而粒子群算法中粒子则能保持历史状态和当前状态。遗传算法的进化初期,变异有... 查看详情

优化分类基于matlab鲸鱼算法优化支持向量机分类(多输入多分类)含matlab源码1557期(代码片段)

一、鲸鱼优化算法优化支持向量机简介1改进的二进制WOA为了改善WOA算法在搜索过程中的收敛速度慢和陷入局部最优的缺点,提出一种改进二进制鲸鱼优化算法(IBWOA)。(1)非线性收敛因子策略。为了更好地协调算法的全局搜索... 查看详情