基于堆栈理论去除二值图像中小面积噪声的方法

文档序号:6520368阅读:395来源:国知局
基于堆栈理论去除二值图像中小面积噪声的方法
【专利摘要】本发明公开一种可降低运行复杂度、减少运行时间、具有较好的鲁棒性的基于堆栈理论去除二值图像中小面积噪声的方法,a.堆栈为空时,顺序扫描二值图像中没有入栈的每个像素;b.若当前像素为黑则将当前像素入栈并标记此像素已入栈;c.此时堆栈不为空,将栈顶出栈并递增记录已连通区域的面积,同时再顺序扫描已标记入栈像素周围八个点;d.循环步骤b、c,将整个连通区域扫描完毕,判断该连通区域是否小于设定的阈值,是则将此连通区域去除;否,则保留。
【专利说明】基于堆栈理论去除二值图像中小面积噪声的方法
【技术领域】
[0001]本发明涉及一种去除二值图像中小面积噪声的方法,尤其是一种可降低运行复杂度、减少运行时间、具有较好的鲁棒性的基于堆栈理论去除二值图像中小面积噪声的方法。
【背景技术】
[0002]目前,对于二值图像中的小面积噪声的去除方法,可以采用并可达到理性效果的是杨淑莹教授在《VC++图像处理程序设计》教程中讲述的阈值面积方法,其基本思路是将二值图像中所有连通区域首先分别编号同时统计各个区域的面积,然后再将面积小于阈值的区域按标号分多次消除。该方法虽然去噪效果好但是复杂度高(对于大小为256X256的图像,复杂度等于扫描次数乘2562)耗时长且对图像中连通区域的数量有不超过250个的限制。
[0003]堆栈是一种只能在一端执行插入和删除操作的先进后出的数据结构,具有“保护现场”和“恢复现场”的作用,所以常被用在子程序调用、递归调用、二叉树遍历及图形的深度优先搜索算法等操作中。堆栈结构中主要有top和bottom两个指针变量及入栈、出栈、判空和取栈顶四种操作,其中top指针会根据出入栈操作而移动一当入栈时top指向新开辟的元素地址,出栈时top指针后退指向原来的栈顶。但是,至今为止,还没有关于基于堆栈理论去除二值图像中小面积噪声的相关报道。

【发明内容】

[0004]本发明是为了解决现有技术所存在的上述技术问题,提供一种可降低运行复杂度、减少运行时间、具有较好的鲁棒性的基于堆栈理论去除二值图像中小面积噪声的方法。
[0005]本发明的技术解决方案是:一种基于堆栈理论去除二值图像中小面积噪声的方法,其特征在于按照如下步骤进行:
a.堆栈为空时,顺序扫描二值图像中没有入栈的每个像素;
b.若当前像素为黑则将当前像素入栈并标记此像素已入栈;
c.此时堆栈不为空,将栈顶出栈并递增记录已连通区域的面积,同时再顺序扫描已标记入栈像素周围八个点;
d.循环步骤b、C,将整个连通区域扫描完毕,判断该连通区域是否小于设定的阈值,是则将此连通区域去除;否,则保留。
[0006]本发明是基于堆栈理论去除二值图像中小面积噪声,具有较好的鲁棒性,不仅去噪效果好,而且对于二值图像仅扫描一次,在扫描的同时确定并消除噪声区域,所以对于大小为256X256的图像,复杂度仅为2562,因其复杂度低,故运行时间短。
【专利附图】

【附图说明】
[0007]图1是本发明实施例所用二值图像。
[0008]图2是现有技术阈值面积法去噪效果不意图。[0009]图3是本发明实施例去噪效果示意图。
[0010]图4是现有技术阈值面积法去噪运行时间示意图。
[0011]图5是本发明实施例去噪运行时间不意图。
[0012]图6是本发明实施例鲁棒性比较所用图像。
[0013]图7是现有技术阈值面积法去噪执行结果示意图。
[0014]图8是本发明实施例去噪执行结果示意图。
【具体实施方式】
[0015]基于堆栈理论去除如图1所示二值图像中小面积噪声的方法,设定阈值为5000,按照如下步骤进行:
a.堆栈为空时,顺序扫描二值图像中没有入栈的每个像素;
b.若当前像素为黑则将当前像素入栈并标记此像素已入栈;
c.此时堆栈不为空,将栈顶出栈并递增记录已连通区域的面积,同时再顺序扫描已标记入栈像素周围八个点;
d.循环步骤b、C,将整个连通区域扫描完毕,判断该连通区域是否小于设定的阈值,是则将此连通区域去除;否,则保留。
[0016]重复a?d步骤,直至将整个二值图像扫描一遍,去除所有噪音。
[0017]因为小面积噪声区域中像素的个数(一般指黑像素个数)是未知的,所以申请与图像大小相等的数组并规定仅可从数组尾存取数据代表堆栈结构。
[0018]采用现有技术阈值面积法对图1所示图像去噪效果如图2所示。
[0019]本发明实施例对对图1所示图像去噪效果如图3所示。
[0020]将图2、图3对比可以看出,本发明去噪效果与现有技术相当。
[0021]1.时间复杂度比较
此处定义方法的时间复杂度为去噪过程中被计算的像素点总个数,对于大小为256 X 256的图像,现有技术的时间复杂度等于扫描次数乘2562,本发明仅扫描图像一次,在扫描的同时确定并消除噪声区域,所以复杂度为2562。
[0022]2.实际运行时间比较
程序运行过程中,在去噪代码前后分别插入输出当前时间的函数,现有技术运行时间示意图如图3所示,本发明实施例运行时间示意图如图4所示。可以看出:现有技术运行时间为:29365937-29365406=531ms ;本发明运行时间为:29461640_29461625=15ms ;本发明与现有技术相比可以节约35倍的时间。
[0023]3.鲁棒性比较
使用现有技术阈值面积法及本发明分别对图6所示图像进行去噪处理,在图6中共含有70个大小不等的连通区域,两种方法执行过程中面积阈值都为3000,执行结果分别如图7,8所示。图7是现有技术阈值面积法去噪执行结果示意图、图8是本发明实施例去噪执行结果示意图。从图7可以看出阈值面积在阈值为3000的条件下显示“连通区域数目太多,请增大阈值”提示信息,且对原图像没有做任何处理;从图8中可以看出,本发明同样在阈值3000的条件下,去噪效果较好,具有较好的鲁棒性。
【权利要求】
1.一种基于堆栈理论去除二值图像中小面积噪声的方法,其特征在于按照如下步骤进行: a.堆栈为空时,顺序扫描二值图像中的没有入栈的每个像素; b.若当前像素为黑则将当前像素入栈并标记此像素已入栈; c.此时堆栈不为空,将栈顶出栈并递增记录已连通区域的面积,同时再顺序扫描已标记入栈像素周围八个点; d.循环步骤b、C,将整个连通区域扫描完毕,判断该连通区域是否小于设定的阈值,是则将此连通区域去除;否,则保留。
【文档编号】G06T5/00GK103646380SQ201310600165
【公开日】2014年3月19日 申请日期:2013年11月25日 优先权日:2013年11月25日
【发明者】郭显久, 耿春云 申请人:大连海洋大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1