基于麻雀算法优化的Tsallis相对熵图像多阈值分割

文章目录

  • 基于麻雀算法优化的Tsallis相对熵图像多阈值分割
    • 1.麻雀搜索算法
    • 2.Tsallis相对熵多阈值图像分割原理
    • 3.适应度函数设计
    • 4.实验结果
    • 5.参考文献
    • 6.Matlab代码

摘要:本文主要介绍利用麻雀算法来优化Tsallis相对熵的图像多阈值分割算法。

1.麻雀搜索算法

麻雀搜索算法的具体原理参考博客:https://blog.csdn.net/u011835903/article/details/108830958。

2.Tsallis相对熵多阈值图像分割原理

设 I(x,y)I(x,y)I(x,y)为待分割图像,图像的尺寸为m∗nm*nm∗n,图像的最大灰度级为LLL,其中1≤x≤m1\leq x \leq m1≤x≤m,1≤y≤n1\leq y \leq n1≤y≤n。图像中对应灰度级iii的像素数目表示为nin_ini​ ,图像的灰度级直方图分布概率可以表示为H={hi∣i=1,2,...,L}H=\{h_i|i=1,2,...,L\}H={hi​∣i=1,2,...,L},其中hi=nim∗nh_i = \frac{n_i}{m*n}hi​=m∗nni​​表示灰度级 iii在图像中出现的频率。设阈值个数为NNN,第jjj个阈值的值为tjt_jtj​,NNN个阈值将图像分为N+1N+1N+1个区域:A1、A2、…AN+1A_1 、A_2 、…A_{N+1}A1​、A2​、…AN+1​ 。

定义 A1A_1A1​ 到 AN+1A_{N+1}AN+1​ 的类概率为:
P1=∑i=1t1hi(1)P_1 = \sum_{i=1}^{t_1}h_i \tag{1} P1​=i=1∑t1​​hi​(1)

Pj=∑i=tj−1tjhi(2≤j≤N)(2)P_j=\sum_{i=t_j-1}^{t_j}h_i(2\leq j \leq N) \tag{2} Pj​=i=tj​−1∑tj​​hi​(2≤j≤N)(2)

PN+1=∑i=tNLhi,i=1,2,...,L(3)P_{N+1}=\sum_{i=t_N}^Lh_i,i=1,2,...,L\tag{3} PN+1​=i=tN​∑L​hi​,i=1,2,...,L(3)

其中 P1+P2+…+PN+1=1P_1 +P_2 +…+P_{N+1} =1P1​+P2​+…+PN+1​=1。同时定义 A1A_1A1​ 到 AN+1A_{N+1}AN+1​ 的灰度级类均值为:
u1=∑i=1t1ihi/P1(4)u_1 = \sum_{i=1}^{t_1}ih_i/P_1 \tag{4} u1​=i=1∑t1​​ihi​/P1​(4)

uj=∑i=tj−1tjihi/Pj,(2≤j≤N)(5)u_j=\sum_{i=t_j-1}^{t_j}ih_i/P_j,(2\leq j \leq N)\tag{5} uj​=i=tj​−1∑tj​​ihi​/Pj​,(2≤j≤N)(5)

uN+1=∑i=tNLihi/PN+1,i=1,2,...,L(6)u_{N+1}=\sum_{i=t_N}^Lih_i/P_{N+1},i=1,2,...,L\tag{6} uN+1​=i=tN​∑L​ihi​/PN+1​,i=1,2,...,L(6)

定义 A1A_1A1​ 到 AN+1A_{N+1}AN+1​ 的灰度级类方差为:
σ12=∑i=1t1(i−u1)2/P1(7)\sigma_1^2 = \sum_{i=1}^{t_1}(i-u_1)^2/P_1 \tag{7} σ12​=i=1∑t1​​(i−u1​)2/P1​(7)

σj2=∑i=tj−1tj(i−uj)2/Pj(8)\sigma_j^2 = \sum_{i=t_{j-1}}^{t_j}(i-u_j)^2/P_j\tag{8} σj2​=i=tj−1​∑tj​​(i−uj​)2/Pj​(8)

σN+12=∑i=tNL(i−uN+1)2/PN+1,i=1,2,...L(9)\sigma_{N+1}^2=\sum_{i=t_N}^L(i-u_{N+1})^2/P_{N+1},i=1,2,...L \tag{9} σN+12​=i=tN​∑L​(i−uN+1​)2/PN+1​,i=1,2,...L(9)

灰度级iii关于 A1A_1A1​ 到AN+1A_{N+1}AN+1​ 的类概率为:
pji=12πσjexp[−(i−uj)22σj2],i=1,2,...,L;j=1,2,...,N+1(10)p_j^i = \frac{1}{\sqrt{2\pi}\sigma_j}exp[-\frac{(i-u_j)^2}{2\sigma_j^2}],i=1,2,...,L;j=1,2,...,N+1 \tag{10} pji​=2π​σj​1​exp[−2σj2​(i−uj​)2​],i=1,2,...,L;j=1,2,...,N+1(10)
定义分割后图像灰度级的拟合高斯分布为:
R={ri∣ri=P1∗p1i+P2∗p2i+...+PN+1∗pN+1i,i=1,2,...,L}(11)R=\{r_i|r_i=P_1*p_1^i+P_2*p_2^i+...+P_{N+1}*p_{N+1}^i,i=1,2,...,L\}\tag{11} R={ri​∣ri​=P1​∗p1i​+P2​∗p2i​+...+PN+1​∗pN+1i​,i=1,2,...,L}(11)
图像的阈值化准则即 Tsallis 相对熵函数:
Jp(H∣R)=1q−1{∑i=1L[hi(ri/hi)q+ri(hi/ri)q]−2}(12)J_p(H|R)=\frac{1}{q-1}\{\sum_{i=1}^L[h_i(r_i/h_i)^q+r_i(h_i/r_i)^q]-2\} \tag{12} Jp​(H∣R)=q−11​{i=1∑L​[hi​(ri​/hi​)q+ri​(hi​/ri​)q]−2}(12)
在对图像进行分割时,如果能够找到NNN个分割阈值t1,t2,...,tNt_1 ,t_2 ,...,t_Nt1​,t2​,...,tN​使式(12)值最小,则这些阈值为最优阈值,最佳分割阈值 T 的集合的获取函数为:
T=argmin1≤t≤L[Jp(H∣R)](13)T=argmin_{1 \leq t\leq L}[J_p(H|R)]\tag{13} T=argmin1≤t≤L​[Jp​(H∣R)](13)

3.适应度函数设计

根据Tsallis相对熵多阈值图像分割原理可知,麻雀搜索函数的适应度函数,即为:
fitness=argmin1≤t≤L[Jp(H∣R)](14)fitness=argmin_{1 \leq t\leq L}[J_p(H|R)]\tag{14} fitness=argmin1≤t≤L​[Jp​(H∣R)](14)
搜索一组阈值,使得Tsallis相对熵值最小。。

4.实验结果

麻雀算法的参数设置如下:

%% 基于麻雀算法的Tsallis相对熵多阈值分割
clear all
clc
I = imread('lena.tiff');%读取图像
SearchAgents_no=50; %种群数量
Max_iteration=50; % 最大迭代次数
dim = 3;%设定阈值个数
lb = ones(1,dim); %下边界1
ub = 255.*ones(1,dim);%上边界255
fobj =@(thresh)fun(I,thresh);%Tsallis 度量值

单阈值分割结果:

2阈值分割结果

3阈值分割结果

5.参考文献

[1]李粉红,卢晶,张志光.一种风驱动优化Tsallis相对熵的图像多阈值分割方法[J].红外技术,2020,42(10):994-1000.

6.Matlab代码

个人资料介绍

基于麻雀算法优化的Tsallis相对熵图像多阈值分割 -附代码相关推荐

  1. 基于麻雀算法优化LSTM回归预测(matlab)

    基于麻雀算法优化LSTM回归预测(matlab) 概述: 麻雀算法构思 lstm原理 麻雀优化lstm原理 代码及结果展示 第一部分 麻雀算法构思 众所周知,麻雀是常见的留鸟而且非常喜欢群居.这种生物 ...

  2. 基于头脑风暴优化的BP神经网络(预测应用) - 附代码

    基于头脑风暴优化的BP神经网络(预测应用) - 附代码 文章目录 基于头脑风暴优化的BP神经网络(预测应用) - 附代码 1.数据介绍 3.BSO优化BP神经网络 3.1 BP神经网络参数设置 3.2 ...

  3. 【预测模型-ELM预测】基于麻雀算法优化极限学习机预测附matlab代码

    1 内容介绍 一种基于麻雀搜索算法优化极限学习机的风电功率预测方法,具体包括如下步骤:步骤1,确定影响风电功率的主导影响因子:步骤2,构建麻雀搜索算法优化核极限学习机预测模型,通过该模型对风电功率进行 ...

  4. 基于Adam算法优化GRU神经网络的短期负荷预测(Python代码实现)

    目录 1 Adam优化算法 2 Adam算法中的学习率衰减策略 3 GRU神经网络 4 运行结果 5 参考文献 6 Python代码实现 1 Adam优化算法 2 Adam算法中的学习率衰减策略 该文 ...

  5. 【图像分割】基于麻雀算法优化Kmeans实现图像分割附Matlab代码

    1 内容介绍 提出一种基于K-Means聚类的麻雀算法,该算法利用麻雀算法鲁棒性较强且不易陷入局部最优值的特点,动态的确定了聚类的数目和中心,解决了K-Means聚类初始点选择不稳定的缺陷,在此两种算 ...

  6. 【PNN分类】基于麻雀算法优化pnn神经网络实现数据分类附matlab代码

    1 简介 概率神经网络(Probabilistic Neural Network,简称PNN)是利用贝叶斯定理和基于风险最小的贝叶斯决策规则对新样本进行分类的神经网络,具有训练时间短且不易收敛到局部极 ...

  7. 基于蝗虫(蚱蜢)优化算法优化的支持向量机分类模型及其MATLAB实现-附代码

    基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 文章目录 基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 1. 模型 ...

  8. 【预测模型】基于麻雀算法改进广义回归神经网络(GRNN)实现数据预测matlab代码

    1 简介 为实现精准施肥"减施增效"的数字化农业施肥技术,本文基于并运用了麻雀搜索算法,对广义回归神经网络(GRNN)进行了结合与改进,并构建作物广义回归神经网络(GRNN)结合麻 ...

  9. 【DBN分类】基于麻雀算法优化深度置信网络SSA-DBN实现数据分类附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  10. 【LSTM时序预测】基于麻雀算法优化长短时记忆SSA-LSTM时序时间序列数据预测(含前后对比)附Matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

最新文章

  1. DNS 到底怎么工作的? (How does dns work?)
  2. aes key长度_原创 | 浅谈Shiro反序列化获取Key的几种方式
  3. 华为手机微信网络连接到服务器失败怎么办,微信H5支付在华为手机里报错 网络环境未能通过安全验证,请稍后再试 怎么解决啊 试了好多方法也不行...
  4. 【tensorflow】Sequential 模型方法
  5. 11. mysqli 学习
  6. P8-07-23 在 GitLab 提交代码后自动触发 Jenkins 构建;使用禅道进行项目管理
  7. Python优雅地可视化数据
  8. php refcount,php的函数的形参refcount为何要加2
  9. arpspoof渗透工具使用方法详解+实战
  10. 关于hadoop2.4.1伪分布式系统的搭建
  11. python中__new__的用法_python中的__init__ 、__new__、__call__小结及使用
  12. GitHub上整理的一些工具[转载]
  13. 到底什么叫作数据架构?
  14. 脱壳--00.aspack.exe
  15. 软件测试思想者(Software Testing - Thinker) - Logo一览
  16. 推荐电视剧 后宫甄嬛传 2012
  17. 文件上传案例(java)
  18. 记一次网页打印小票、收据
  19. PDF 预览和下载你是怎么实现的?
  20. 项目经理常用的12大工具及5大最佳项目管理软件

热门文章

  1. 斐波那契查找算法中为什么需要把数组长度扩充到f[k]-1而不是f[k]或者f[k+1]
  2. SpringBoot引入Redis
  3. HttpServletRequest 和 HttpServletResponse
  4. docker数据卷之dockerfile
  5. mysql自增主键到头了怎么办_数据库自增主键用完了怎么办
  6. .net session 有效时间_【面试题】|干货!.NET C# 简答题Part 07
  7. 从第一范式(2nf)到第二范式(3nf)_关系数据模型-范式
  8. Javascript特效:进度条
  9. java mybatis缓存机制_mybatis缓存机制与陷阱
  10. 算法笔记_面试题_2.移动零(将数组的的0元素移到末尾)