智能优化算法应用:基于灰狼算法的二维Otsu图像阈值分割

文章目录

  • 智能优化算法应用:基于灰狼算法的二维Otsu图像阈值分割
    • 1.二维Otsu算法原理
    • 2.基于灰狼优化(GWO)的二维otsu阈值分割
    • 3.算法结果
    • 4.参考文献
    • 5.MATLAB代码

摘要:1维Otsu法根据1维直方图来确定分割阈值,由于未考虑像素点邻域平均灰度值导致确定的分割阈值不准确,造成图像分割不正确,因研究人员提出了一种2维Otsu分割法。结合灰狼寻优能够得到较好的分割结果。

1.二维Otsu算法原理

2维Otsu法是在1维Otsu法的基础上引入像素点的邻域均值,原理如下 :假设原图像f(x,y)f(x,y)f(x,y)和经过均值滤波(滤波窗口为 3× 3 )后的图像
g(x,y)g(x,y)g(x,y) 的灰度级总数都为LLL,所有像素点的像素和为NNN,那么可以用二元数组(i,j)(i,j)(i,j)来描述图像中的任意像素点,其中i和j分别是像素灰度值和邻域平均灰度值。假设在图像中像素点(i,j)(i,j)(i,j) 存在的个数为NijN_{ij}Nij​ ,则该像素点出现的概率为:
Pij=Nij/N,∑i=0L−1∑j=0L−1pij=1(1)P_{ij}=N_{ij}/N,\sum_{i=0}^{L-1}\sum_{j=0}^{L-1}p_{ij}=1\tag{1} Pij​=Nij​/N,i=0∑L−1​j=0∑L−1​pij​=1(1)
随机给定一个分割阈值数组 (s,t)(s,t)(s,t),可将图像分为如图1所示的4个部分。图1中a、b、c、d依次表示图像中的边界、背景、目标和噪声。设该分割阈值将图像划分出的背景类 C0C_0C0​ 和目标类 C1C_1C1​ 出现的概率分别为 w0w_0w0​ 和w1w_1w1​ ,即:
w0=∑i=0s−1∑j=0t−1pij(2)w_0=\sum_{i=0}^{s-1}\sum_{j=0}^{t-1}p_{ij}\tag{2} w0​=i=0∑s−1​j=0∑t−1​pij​(2)

w1=∑i=ss−1∑j=tt−1pij(3)w_1=\sum_{i=s}^{s-1}\sum_{j=t}^{t-1}p_{ij}\tag{3} w1​=i=s∑s−1​j=t∑t−1​pij​(3)

图1 2维Otsu分割的图像分区

则背景C0C_0C0​和目标C1C_1C1​区域对应的均值矢量为:
u0=(u0i,uoj)T=[∑i=0s−1∑j=0t−1ipij,∑i=0s−1∑j=0t−1jpij]T(4)u_0=(u_{0i},u_{oj})^T=[\sum_{i=0}^{s-1}\sum_{j=0}^{t-1}ip_{ij},\sum_{i=0}^{s-1}\sum_{j=0}^{t-1}jp_{ij}]^T\tag{4} u0​=(u0i​,uoj​)T=[i=0∑s−1​j=0∑t−1​ipij​,i=0∑s−1​j=0∑t−1​jpij​]T(4)

u1=(u1i,u1j)T=[∑i=sL−1∑j=tL−1ipij,∑i=0s−1∑j=0t−1jpij]T(5)u_1=(u_{1i},u_{1j})^T=[\sum_{i=s}^{L-1}\sum_{j=t}^{L-1}ip_{ij},\sum_{i=0}^{s-1}\sum_{j=0}^{t-1}jp_{ij}]^T\tag{5} u1​=(u1i​,u1j​)T=[i=s∑L−1​j=t∑L−1​ipij​,i=0∑s−1​j=0∑t−1​jpij​]T(5)

则总的均值矢量为:
u=(u1i,uj)T=[∑i=0L−1∑j=0L−1ipij,∑i=0L−1∑j=0L−1jpij]T(6)u=(u_{1i},u_{j})^T=[\sum_{i=0}^{L-1}\sum_{j=0}^{L-1}ip_{ij},\sum_{i=0}^{L-1}\sum_{j=0}^{L-1}jp_{ij}]^T\tag{6} u=(u1i​,uj​)T=[i=0∑L−1​j=0∑L−1​ipij​,i=0∑L−1​j=0∑L−1​jpij​]T(6)
其类间离散矩阵定义如下:
Q(s,t)=w0(u0−u)2+w1(u1−u)2(7)Q(s,t)=w_0(u_0-u)^2+w_1(u_1-u)^2\tag{7} Q(s,t)=w0​(u0​−u)2+w1​(u1​−u)2(7)
将离散矩阵的迹作为 C0C_0C0​ 区域和 C1C_1C1​ 区域的类间离散度测度,即:
Rtrace(Q(s,t))=(w0+w1)∗[(u0i−ui)2+(uoj−uj)2](8)R_{trace}(Q(s,t))=(w_0+w_1)*[(u_{0i}-u_i)^2+(u_{oj}-u_j)^2]\tag{8} Rtrace​(Q(s,t))=(w0​+w1​)∗[(u0i​−ui​)2+(uoj​−uj​)2](8)
当 Rtrace(Q(s,t))R_{trace}(Q(s,t))Rtrace​(Q(s,t))取最大值时,此时确定的分割阈值 (s0,t0)(s_0,t_0)(s0​,t0​)是最优的,则目标可以较好地被分割出来,即:
Rtrace(Q(s0,t0))=max(Rtrace(Q(s,t))),0≤s≤L−1,0≤t≤L−1(9)R_{trace}(Q(s_0,t_0)) = max(R_{trace}(Q(s,t))),0\leq s\leq L-1,0\leq t \leq L-1 \tag{9} Rtrace​(Q(s0​,t0​))=max(Rtrace​(Q(s,t))),0≤s≤L−1,0≤t≤L−1(9)

2.基于灰狼优化(GWO)的二维otsu阈值分割

由上述二维Otsu阈值分割法的原理可知,要得到最终的阈值,需要去寻找阈值(s,t),使得离散度测度最大。于是可以利用智能优化算法进行阈值的寻优,使得获得最佳阈值。

于是优化的适应度函数就是:
fun{T1∗,T2∗,...,Tn−1∗}=max(Rtrace(Q(s,t))),0≤s≤L−1,0≤t≤L−1fun\{T_1^*,T_2^*,...,T_{n-1}^*\} =max(R_{trace}(Q(s,t))),0\leq s\leq L-1,0\leq t \leq L-1 fun{T1∗​,T2∗​,...,Tn−1∗​}=max(Rtrace​(Q(s,t))),0≤s≤L−1,0≤t≤L−1
设置阈值分割的个数,寻优边界为0到255(因为直方图的灰度级范围为0-255),设置相应的灰狼算法参数(灰狼算法具体原理及代码参照我之前写灰狼算法原理:https://blog.csdn.net/u011835903/article/details/107716390)。

3.算法结果

以lena,cameraman为例子

阈值分割结果

4.参考文献

[1]邵闯,王生怀,邹春龙,周红勋.基于混合粒子群优化的2维Otsu路面裂缝图像阈值分割方法[J].湖北汽车工业学院学报,2019,33(03):53-57.

5.MATLAB代码

基于灰狼算法的二维Otsu图像阈值分割
基于穷举法的二维Otsu图像阈值分割

个人资料介绍

智能优化算法应用:基于灰狼算法的二维Otsu图像阈值分割-附代码相关推荐

  1. 【优化求解】基于灰狼算法GWO求解最优目标matlab代码

    1 简介 Mirjalili 等人提出了一种新的群体智能算法---灰狼优化算法(GWO),并通过多个基准测试函数进行测试,从结果上验证了该算法的可行性,通过对比,GWO 算法已被证明在算法对函数求解精 ...

  2. 【优化求解】基于灰狼算法求解多目标问题matlab代码

    1 简介 灰狼群体具有严格的社会支配等级且其等级划分呈金字塔形式,在捕捉猎物时,灰狼是通过相交流共享的体制来模拟的.其他智能算法类似的是,每一个可能解都由每头灰狼的位置来对应.种群的发展需要不断地更新 ...

  3. 【图像分割】基于差分进化算法优化模糊熵实现多级图像阈值分割附matlab代码

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

  4. 《算法图解》学习笔记(二):选择排序(附代码)

    欢迎关注WX公众号:[程序员管小亮] python学习之路 - 从入门到精通到大师 文章目录 欢迎关注WX公众号:[程序员管小亮] [python学习之路 - 从入门到精通到大师](https://b ...

  5. 基于粒子群优化二维Otsu的肺CT图像分割算法

    1.内容简介 略 488-可以交流.咨询.答疑 2.内容说明 随着大气污染的加剧和环境的破坏,肺癌患者急剧增加,肺癌成为危害人 类健康最大的恶性肿瘤,因此肺癌治疗迫在眉睫.当前,肺肿瘤检查的主要方 式 ...

  6. 【优化求解】基于布谷鸟算法结合灰狼算法求解最优目标matlab代码

    1 简介 布谷鸟搜索(Cuckoo Search, CS)算法是 2009 年 Xin-She Yang 与 Susash Deb 提出的一种新型的启发算法[61].算法灵感来源于一些布谷鸟种属(Cu ...

  7. 路径规划算法:基于灰狼优化(GWO)的路径规划算法- 附代码

    路径规划算法:基于灰狼优化(GWO)的路径规划算法- 附代码 文章目录 路径规划算法:基于灰狼优化(GWO)的路径规划算法- 附代码 1.算法原理 1.1 环境设定 1.2 约束条件 1.3 适应度函 ...

  8. 【回归预测-LSTM预测】基于灰狼算法优化LSTM实现数据回归预测附Matlab代码

    1 内容介绍 一种基于灰狼算法优化LSTM的网络流量预测方法,属于网络流量预测领域,该方法包括以下步骤:对第一网络流量数据集进行极差标准化处理,得到第二网络流量数据集,并划分为训练集和测试集,并确定灰 ...

  9. 基于灰狼算法优化的lssvm回归预测-附代码

    基于灰狼算法优化的lssvm回归预测 - 附代码 文章目录 基于灰狼算法优化的lssvm回归预测 - 附代码 1.数据集 2.lssvm模型 3.基于灰狼算法优化的LSSVM 4.测试结果 5.Mat ...

  10. 基于灰狼算法优化的Elman神经网络数据预测

    基于灰狼算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于灰狼算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

最新文章

  1. 生成Yolox检测负样本-对应空文件夹txt、批量文件重命名、批量转化三通道去除小图
  2. Python爬虫实战(5):模拟登录淘宝并获取所有订单
  3. 不等号属于不等式吗_初中数学:关于解不等式应用题的难点突破策略,用了就能拿高分...
  4. python列表[]中括号
  5. 自制jQuery 复选框全选与反选插件
  6. 一亿人民币是什么概念?
  7. 7. Shell 脚本编写
  8. Vue Cli 打包之后静态资源路径不对的解决方法
  9. unix环境高级编程基础知识之第一篇
  10. 汇总Eclipse快捷键
  11. 三星 9810 android 9,【极光ROM】-【三星NOTE9 N960X-9810】-【V19.0 Android-Q-TF5-OneUI2.1】...
  12. 《大般涅槃经》略释 净慧法师
  13. 北京理工计算机实验二报告,北京理工大学实验二实验报告表
  14. spiders的使用
  15. 高质量前端:Code Review 很慢,你要忍一下。
  16. Excel VBA 免密查看VBE加密代码
  17. 把基础打牢了,将来就可以触类旁通,行行都可以写出精彩
  18. 6轴串联关节机器人的奇异点
  19. 快充协议诱骗芯片大全:XSQ10支持9V12V15V20V
  20. 【OTT】OTT Media Grinder (OTT TV 质量评价设备)

热门文章

  1. C语言scanf中%%,C语言scanf()和gets()及printf()和puts()的区别
  2. 用c#算成绩的总和_用c#编写输出成绩的总分和平均分
  3. Rulo扫地机器人app_扫地机器人扫不干净 为什么我还推荐大家买?
  4. vue文件的三大组成部分
  5. Javascript:访问和设置CSS属性
  6. SQL:解决PostgreSQL数据库传输出现ERROR: invalid byte sequence for encoding “UTF8“: 0xe5 0x9b 0x20
  7. 2021高考河北省艺术类成绩查询,2021河北省艺术类高考专业考试成绩有关规定
  8. java mybatis 代码生成器_mybatis自动生成java代码
  9. 关于Pulsar与Kafka的对比
  10. GIS_gdal geotiff文件与C# 数组array之间的转换