本发明属于图像处理技术领域,具体涉及到图像多阈值分割。
背景技术:
图像分割是图像分析的基础,其目的是将目标与背景分离,为计算机视觉的后续处理提供依据。其中阈值分割是利用图像中目标区域与背景区域在灰度特性上的差异,选取一个比较合理的阈值,将图像中每个像素点划分到目标区域或背景区域中,生成二值图像,从而对图像进行分割。其具有物理意义明确、易于实现的特点。图像多阈值分割需要在全灰度范围内搜索一个最优阈值组合,使图像分割效果最好,如何找到最优的阈值组合则是一个函数优化问题。
最大类间方差法的原则是用几个阈值将图像的灰度直方图分成独立的类,使得各类间的方差最大,因此可以被视为一个优化问题。目前很多研究者将启发式算法如粒子群算法、遗传算法等应用于图像多阈值求解,搜索最优阈值组合效果较好,但是仍存在搜索速度慢、精度不高等问题。
布谷鸟算法(cuckoosearch,简称cs)模拟了布谷鸟独特的寻窝产卵行为,并引入自然界鸟类、果蝇运动轨迹的lévy飞行机制,能够快速有效地寻找到最优解。但同其他群智能算法一样,也存在后期易陷入局部最优、搜索精度低等缺点。因此引入一种改进的布谷鸟(improvedcuckoosearch,简称ics)优化法来改善布谷鸟算法的局部寻优能力,并将其应用到以最大类间方差为准则函数的灰度图像多阈值分割中,来提高分割质量和速度。
技术实现要素:
本发明要解决的技术问题是:提供一种基于改进布谷鸟优化法的图像多阈值分割方法,解决传统最大类间方差法耗时长、精度不高的问题。
解决上述问题所采用的技术方案是由下述步骤组成:
(1)图像预处理
读入需要处理的灰度图即待分割图像,确定阈值个数。
(2)设定目标函数
选取最大类间方差法作为目标函数,最大类间方差法如下:
对于灰度范围为{0,1,…,l-1}的图像,设有k个阈值将图像划分为k+1类,有
其中,hi(t1,t2,…,tk)为第i个个体的适应度函数值,i为有限的正整数,t1,t2,…,tk为分割阈值,
(3)用改进布谷鸟优化法寻找最佳阈值
1)设置参数
随机生成n个鸟窝且n为正整数,最大迭代次数为kmax、发现概率pa∈[0,1],将n个鸟窝随机分布在灰度图像最大灰度值lmax和最小灰度值lmin之间。
2)确定适应度函数值
根据公式(1)和鸟窝初始位置xi,确定适应度函数值hi。
3)更新鸟窝位置
根据适应度函数值的大小,保留当前迭代次数中全局最优鸟窝,记为xbest,满足:
h(xbest)=max(hi)(2)
其他鸟窝采用改进式(3)进行更新:
其中,
4)偏好随机游走更新鸟窝位置
通过位置更新后,用随机数r∈[0,1]与pa对比,若r>pa,则对
其中,r是压缩因子,为(0,1)区间的均匀分布随机数,
其中t为当前迭代次数,pa_max和pa_min是pa的上下限。
5)更新全局最佳阈值
重复上述1)~4)步骤,获得全局最优值,比较新一组的全局最优值的适应度函数值与原全局最优值的适应度函数值的大小,若新的适应度函数值大于原适应度函数值,更新全局最优值,直到达到所设置的最大迭代次数kmax,此时的全局最优值即为图像多阈值分割的最佳阈值。
(4)图像多阈值分割
根据搜索的最佳阈值对待分割的灰度图像进行多阈值分割,得到分割后的图像。
在本发明的步骤(2)中,所述的k是阈值个数,k的取值范围为5~11。
在本发明的步骤(3)的步骤1)中,本发明的鸟窝数目为50,最大迭代次数为150,发现概率pa最大值pa_max和最小值pa_min分别为0.95、0.15。最大灰度值lmax为255、最小灰度值lmin为0。
本发明采用布谷鸟算法来解决基于最大类间方差的阈值分割问题,并且针对算法后期易陷入局部最优、寻优速度慢的缺点,给出了一种改进的布谷鸟算法。该改进算法自适应调整发现概率,从而增加种群的多样性,及时跳出局部最优;另外将lévy飞行替换为由鸟窝位置适应度值和当前迭代次数共同决定的步长,使得算法在前期能够扩大搜索范围,增强全局寻优能力,后期具有更强的局部开发能力。因此可以有效提高最大类间方差法实现灰度图像多阈值分割的实时性。
附图说明
图1是实施例的流程图。
图2是lena,baboon和cameraman的原图及其灰度直方图。
图3是对lena图进行本发明方法提出的ics和基本的cs的五阈值、七阈值、九阈值、十一阈值分割效果对比图。
图4是对baboon图进行本发明方法提出的ics和基本的cs的五阈值、七阈值、九阈值、十一阈值分割效果对比图。
图5是对cameraman图进行本发明方法提出的ics和基本的cs的五阈值、七阈值、九阈值、十一阈值分割效果对比图。
图6是本发明方法提出的ics和基本的cs对三幅图的寻优曲线进行对比。
具体实施方式
实施例:
如图1所示,本实施例的多阈值最大类间方差法的阈值选取准则是分割后各类间方差最大。具体实施步骤如下:
(1)图像预处理
图1给出了本实施例的流程图。读入需要处理的灰度图即待分割图像,确定阈值个数。
(2)设定目标函数
选取最大类间方差法作为目标函数,最大类间方差法由下式确定:
其中,hi(t1,t2,…,tk)为第i个个体的适应度函数值,i为有限的正整数,t1,t2,…,tk为分割阈值,
(3)用改进布谷鸟优化法寻找最佳阈值
1)设置参数
随机生成n个鸟窝且n为50,最大迭代次数为kmax为150,最大发现概率pa_max和最小发现概率pa_min分别为0.95、0.15,将50个鸟窝随机分布在灰度图像最大灰度值255和最小灰度值0之间。
2)确定适应度函数值
根据公式(1)和鸟窝初始位置xi,确定适应度函数值hi。
3)更新鸟窝位置
根据适应度函数值的大小,保留当前迭代次数中全局最优鸟窝,记为xbest,满足:
h(xbest)=max(hi)(2)
其他鸟窝采用改进式(3)进行更新:
其中,
4)偏好随机游走更新鸟窝位置
通过位置更新后,用随机数r∈[0,1]与pa对比,若r>pa,则对
其中,r是压缩因子,为(0,1)区间的均匀分布随机数,
其中t为当前迭代次数,pa_max和pa_min是pa的上下限。
5)更新全局最佳阈值
重复上述1)~4)步骤,获得全局最优值,比较新一组的全局最优值的适应度函数值与原全局最优值的适应度函数值的大小,若新的适应度函数值大于原适应度函数值,更新全局最优值,直到达到所设置的最大迭代次数kmax,此时的全局最优值即为图像多阈值分割的最佳阈值。
(4)图像多阈值分割
根据搜索的最佳阈值对待分割的灰度图像进行多阈值分割,得到分割后的图像。
本发明提出的基于改进布谷鸟优化法图像多阈值分割方法,在图像分割精度和实时性与现有方法比具有明显优势。以下通过一组实验来说明本发明方法与基本cs算法相比的优越性。
如图2~5所示,分别以经典的lena图、baboon图和cameraman图作为分割对象,使用本发明的多阈值图像分割算法进行实验。其中lena大小为256×256,baboon和cameraman大小为512×512。实验环境为cpu2.60ghz、内存4gb、matlabr2017b。图3~5分别给出了3幅图像采用本发明方法提出的ics和基本的cs的五阈值、七阈值、九阈值、十一阈值分割结果对比图。其中k为阈值个数,范围为5~11。
将本发明方法与基于布谷鸟算法cs的最大类间方差多阈值图像分割算法进行比较,两种算法种群规模均为n=50,最大迭代次数kmax=150。cs算法中发现概率pa=0.25,步长因子α0=0.01用两种算法对三幅图像进行多阈值分割的结果如表1所示。
由表1可知,当分割阈值数量较多(九、十一阈值)时,本发明的方法在分割精确性上体现出了明显的优势。
表1
采用峰值信噪比psnr、均方误差mse、cpu运行时间以及结构相似性ssim来评价两种算法分割性能,结果如表2所示。其中:
信噪比:
均方误差:
结构相似性:
式中μi是i的平均值,
由表2可知,当分割阈值数量较多(九、十一阈值)时,本发明方法的psnr和ssim优于cs,使用本发明方法运行时间明显比cs算法节约1s左右,体现出本发明方法在连续运行时分割质量很高,且速度更快。
表2
表2.22种算法的cpu运行时间和ssim值比较
图6为本发明方法ics与cs算法在阈值为11时的寻优曲线图,从图6可以看出,本发明方法的适应值上升速度明显比cs算法快。
综上所述,本发明提出的改进布谷鸟优化法的图像多阈值分割方法,可以提供更加高效、稳定的阈值分割方法。