APP下载

一种改进的二值图像边界保持算法

2020-07-13钟伦超何川

商丘师范学院学报 2020年9期
关键词:二值锯齿像素点

钟伦超 ,何川

(1.黄山学院 教务处,安徽 黄山 245041;2.黄山学院 信息工程学院,安徽 黄山 245041)

随着计算机技术的快速发展,数字图像处理成了日常生活和工作应用中不可或缺的部分,很多材料分析和文档存储都是通过图像处理来实现.二值图像虽然是只有黑白两种颜色组成的简单图像,但是它在数字图像处理中占据了很重要的地位.二值图像能够有效区分图像的背景和目标物,这一特性使得二值图像被广泛应用到各个研究领域,例如,医学图像中CT图像特征提取、生物学方向的植物叶片等轮廓分析、车牌识别和图像的字符提取等.

二值图像处理离不开图像放大技术,图像放大有利于观察图像的细节特征.但是传统的二值图像放大会给图像边界带来锯齿,使图像边界不光滑,降低二值图像的视觉效果,严重影响图像的使用和美观.针对该问题,江巨浪、张佑生等人提出一种基于区域填充的二值图像放大算法[1],对锯齿区域检测并进行处理,使图像边界变得光滑.该算法有效地解决了二值图像放大所带来的边缘锯齿问题,但是这类算法也存在一定不足,其在对二值图像放大产生的锯齿区域进行补偿后,新图像的边缘出现外扩现象,图像面积增加,图像目标物像素占比远大于原放大图像目标物像素占比.针对这个问题,江巨浪等人提出了一种基于区域补偿的锯齿消除算法[2],先对图像近邻放大一定倍数,再用锯齿区域补偿法对锯齿进行去除,最后通过提出的形态学腐蚀算法对图像边缘外扩部分进行合理收缩.本文基于锯齿检测和填充算法[1],提出一种改进的边界保持算法,将图像边缘收缩到合理位置,同时使图像边缘保持良好的结构性.通过实验对比,本文算法处理的图像效果明显优于文献[1]、文献[2]提出的算法.

1 锯齿消除算法

1.1 图像预处理

在利用图像对数据特征进行分析时,需要对图像进行预处理,例如,灰度图像的二值化、图像放大.

(1)图像二值化:本文采用MATLAB R2016b图像处理自带的graythresh和im2bw函数来完成图像的二值化.

(2)二值图像放大:二值图像放大算法多种多样,例如近邻取样法,双线性插值法[3],样条插值法[4]与B样条插值法[5]等,通过多种二值图像放大方法的实验结果比较,由于近邻放大法处理后的二值图像边缘没有出现灰度渐变的模糊现象,因此此处二值图像的放大采用近邻放大法,得到如图1(b)所示放大5倍后的二值图像.

1.2 锯齿检测与填充

本文的锯齿检测和填充方法是基于江巨浪、张佑生等人提出的基于区域填充的锯齿消除算法[1],在此仅作简单介绍:将原图像通过近邻放大法放大5倍,再设定锯齿边长长度门限L,通过对近邻放大的二值图像进行锯齿检测,确定锯齿所在区域三角形,通过填充条件得到如图1(c)所示的填充像素,将填充像素与近邻放大图像合并,得到边界光滑的放大图像.处理效果如图1(d)所示.

(a)原图像 (b)近邻放大5倍的图像 (c)填充像素 (d)填充后的图像图1 区域填充去锯齿的处理效果

2 边界保持算法步骤

如图1(d)所示,通过区域填充得到了边界光滑的菱形图像,但是不难发现,新图像目标物像素占比远大于图1(b)的近邻放大图像,针对基于区域填充的锯齿消除算法[1]带来的图像边界外扩问题,本节提出改进的形态学腐蚀算法对图像进行处理.采用图像锐化中的一阶微分思想,多次检测图像的非水平和非垂直边界,再进行腐蚀处理.腐蚀算法:从图像左上角开始依次检测每一个像素的像素值,对于像素值为0的黑色像素点I(i,j),执行式(1)的逻辑运算,若逻辑运算结果为TRUE,则将该黑色像素点像素值置为1;若逻辑运算执行结果为FALSE,则不改变目标像素点的像素值.

~I(i,j)&(I(i-1,j)|I(i+1,j)|I(i,j-1)|I(i,j+1))&~(~I(i-1,j)&~I(i+1,j))&~(~I(i,j-1)&~I(i,j+1))

(1)

式(1)所表示的逻辑关系:目标像素点为黑色,只要该点的4-近邻像素值满足左右不同时为黑且上下不同时为黑,就将该点的像素值置为1.我们用如图2所示的图形来进一步说明目标像素点P0的4-近邻的像素点分布情况,更形象地阐释式(1)所表示的逻辑关系.图2(a)-(h)为符合腐蚀条件式(1)的8种情形:

图2 腐蚀算法中的目标像素邻域结构

应用此算法对填充后的图像进行处理,运算一次就会使得图像的边界收缩一次,通过实验结果表明,由于放大倍数的原因,仅运行一次并不能达到预期效果.在本文提出的算法中,我们设置腐蚀次数c,由试探方法决定c的数值,即腐蚀运行次数.我们通过不断增加腐蚀次数,计算腐蚀后的图像中的目标物像素比,并和近邻放大图像的目标物像素比进行比较,最终选择和原图像目标像素占比最接近的c值,终止运算,并输出此时的处理图像.

通过实验算法探测,最终通过目标物像素占比比较分析,得出腐蚀次数c值为3,即对原填充图像运用本文提出的腐蚀算法腐蚀3次,得到如图3(b)所示的图像,显然,可以看到图像边界光滑且图像结构保持不变,原本外扩的图像边界也进行了合理的收缩.

(a)原填充图像 (b)腐蚀后的图像图3 本文算法腐蚀的图像效果

3 实验分析

为了进一步验证本文算法实际应用中的有效性和实用性,通过民间剪纸来进一步分析算法,处理结果如图4所示.图4(a)是189×183的原图像,图4(b)是用近邻放大算法将原图像放大5倍(945×915)的图像,可以看出,图像的非水平和非垂直边界存在严重的锯齿效应,图像边界不光滑,影响图像的美观;图4(c)是基于区域填充处理的去锯齿图像,显然,图像的边界出现了很严重的外扩现象,通过表1的数据分析,可以得出目标物像素占比大于原近邻放大图像;图4(d)是基于补偿法的腐蚀算法处理的结果,虽然该方法保证了合理的面积比,但是边界光滑程度不理想,有较明显的“抖动感”,影响图像美观;图4(e)为本文算法处理的图像结果,不但有效去除了近邻放大所带来的边界锯齿,目标物像素面积占比更加接近原放大图像,且比(d)图更加平滑美观.

表1根据剪纸图像的实际处理结果,统计了各类算法的目标物像素面积占比及相对误差,并与原近邻放大图像进行比较分析.不难看出,本文算法处理的图像目标像素面积最接近原近邻放大图像,相对误差仅为2.75%,明显优于文献[1]和文献[2]的处理结果,且误差值在实验误差允许范围内.

(a)原图像 (b)近邻放大5倍的图像 (c)文献[1]算法处理的图像

(d)文献[2]算法处理的结果 (e)本文算法处理的结果图4 二值图像的锯齿消除和腐蚀处理图像效果

表1 图像的目标物像素占比及相对误差的比较

图4(e)的实验结果是在Intel(R) Pentium(R) CPU G2030(3.00GHz)、内存4G的微机上采用MATLAB R2016b软件编程实现的,算法运行时间仅为305.52 ms.完全满足实时处理图像的时间要求.

4 结 语

二值图像的放大技术应用广泛,但是传统的二值图像放大处理会给图像带来严重的边界锯齿,通过区域填充的方法消除边界锯齿时,不可避免地出现边界外扩现象,增加放大图像的目标像素面积占比.本文采用区域填充的锯齿去除算法[1]对近邻放大图像的边界锯齿区域进行有效填充,研究表明区域填充方法的输出图像中存在目标物边缘外扩问题,本文提出了有效的形态学腐蚀算法,对填充算法带来的边界外扩问题进行研究处理.通过算法仿真与结果分析,本文算法能有效将填充图像的边界进行合理收缩,保持与原放大图像最接近的目标像素面积占比,并保持图像结构不变.

猜你喜欢

二值锯齿像素点
猛犸杀手——锯齿虎
基于局部相似性的特征匹配筛选算法
基于5×5邻域像素点相关性的划痕修复算法
面向网络边缘应用的新一代神经网络
基于二值图像数字水印算法研究
基于canvas的前端数据加密
基于稀疏表示的二值图像超分辨率重建算法
基于曲率局部二值模式的深度图像手势特征提取
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
锯齿线在整形美容领域的应用