IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【图像处理】基于matlab压缩系数的粒子群和重力搜索算法图像的多级阈值分割【含Matlab源码 1888期】 -> 正文阅读

[人工智能]【图像处理】基于matlab压缩系数的粒子群和重力搜索算法图像的多级阈值分割【含Matlab源码 1888期】

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

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 ('\fontsize{15}\bf 飞机 (k=2)');
   % %  title ('\fontsize{15}\bf  Cameraman (k=2)');
   xlabel('\fontsize{15}\bf 算法');
   ylabel('\fontsize{15}\bf 最优适度值');
   box on
% % % 

% /* Graphical Analysis*/
figure
 plot(CPSOGSA_Fit_bests,'DisplayName','CPSOGSA','Color','b','LineStyle','-','LineWidth',3);
 disp( ['Time_CPSOGSA =', num2str(toc)]); 
 title ('\fontsize{15}\bf Aeroplane (k=2)'); % k=2,4,6,8,10
 % %  title ('\fontsize{15}\bf Cameraman (k=2)');
 xlabel('\fontsize{15}\bf 迭代');
 ylabel('\fontsize{15}\bf 适度值');
 legend('\fontsize{12}\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 ('\fontsize{15}\bf 飞机 (k=2)');
% title ('\fontsize{15}\bf  Cameraman (k=2)');
    xlabel('\fontsize{15}\bf 灰度级');
    ylabel('\fontsize{15}\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 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-18 23:24:40  更:2022-06-18 23:25:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:30:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码