一种数字图像单连通区域的涂色方法与流程

文档序号:12468624阅读:678来源:国知局

本发明涉及一种图像处理方法,属于图像自动处理与识别领域,本发明也可用于扫地机器人路径规划,因此也属于机器人路径规划领域。



背景技术:

在车牌照自动识别过程中,图像经过二值化处理之后,字符处于车牌边框之内。如果能将边框之外的区域,或者是部分区域,涂上与车牌边框相同的颜色,车牌位置的确定就会变得更加容易,更加精确。通过一种单连通区域边缘的确定方法可以找出单连通区域的边缘点,现在的问题是如何将这些边缘点及其由它们所隔离的区域涂上指定的颜色,比如黑色。

在扫地机器人路径规划中,待扫区域是一块连通区域,可以分割为几块单连通区域。用水平线和竖直线将单连通区域分割成边长相等的正方形,扫地机器人扫完整个单区域等价于为这块单连通区域涂上指定的颜色。因此,数字图像单连通区域的涂色方法不仅可用于车牌照自动识别,也可用于扫地机器人路径规划中。



技术实现要素:

公开了一种二值图像单连通区域螺旋递进涂色方法,该方法从单连通区域边缘的一点开始,利用边缘确定方法逐层找出单连通区域的边缘像素并逐个涂色。为避免涂色过程中将单连通区域分割成几个不连通的区域而导致漏涂问题,在每一层各像素涂色之后,查找边缘像素序列中像素距离不超过1的两个像素,序号较大的像素复原来的颜色,除非它们在序列中的排列序号相差不超过4。采用这种方法有效地避免了单连通区域的分裂问题。由于前一层像素序列的最后一个像素就是后一层序列的第一个像素,因此递进过程呈螺旋状,一直延伸到最后一个被涂色的像素。

附图说明

图1是单连通区域及其各层边缘示意图,图中的纹理只是用来区分不同的区域,并不表示二值图像的颜色。其中区域1是第一层涂色区域;区域2是第二层涂色区域;区域3是第二层涂色过程中保持颜色的区域;区域4是单连通区域中剔除第一、二层边缘后盛下的区域

具体实施方式

如图1所示,小正方形表示像素,由小正方形组成的区域为单连通区域。以原单连通区域的颜色为黑色为例,其像素值为0,现在的目的就是将该区域全部涂成白色,也就是将区域内所有像素的像素值置为1。采用二值图像单连通区域边缘的确定方法可以求出该单连通区域的相邻像素不重复的边缘像素序列,记为{p(i,1),i=1,2,…,N1},称为第一层边缘,其中N1表示边缘序列像素个数。{p(i,1),i=1,2,…,N1}确定之后,可以逐个将其中的像素值置为1,如图1中的区域1。然后再考虑剩下的黑色单连通区域,即区域2、区域3、区域4组成的单连通区域。采用螺旋递进的方法,即依次从{p(i,1),i=1,2,…,N1}中边缘像素的周围寻找一个像素值为0的像素p(1,2),由此开始,采用单连通区域边缘确定方法找到第二层边缘{p(i,2),i=1,2,…,N2}。一般地,以{p(i,k),i=1,2,…,Nk}表示第k层边缘像素序列,其中Nk表示第k层边缘序列像素个数。

然而,在许多情况下,当上面的涂色过程进行到一定层次时,原来的单连通区域就会变成几个不连通区域。例如图1,当第二层边缘的涂色完成后原来的单连通区域变成两个不连通区域,即区域4。此时,如果继续采用上述螺旋递进的涂色方法,区域4中有一个子区域将在涂色过程中被遗漏。导致这一问题的原因是第二层边缘含有两个像素距离为1的边缘像素,作为第二层边缘的一部分,这两个边缘像素之间的一段边缘隔离了尚未涂色的像素。例如图1中p(12,2)和p(21,2)的像素距离为1,这两个边缘像素之间的一段子边缘p(12,2),p(13,2),…,p(21,2)中隔离了尚未涂色的像素。为了避免将连通区域分裂,对于每一层边缘像素序列中距离不超过1的两个像素p(i,k)和p(j,k),它们之间的一段子边缘中不能隔离尚未涂色的像素,因此子边缘的长度不能超过4。这就是说,检查满足|i-j|≥4的每一对p(i,k)和p(j,k),当||p(i,k)-p(j,k)||≤1时,只要p(i,k)和p(j,k)中有一个像素不涂色,就不会导致单连通区域的分裂,其中“||·||”表示欧氏距离。于是,当1≤i≤Nk时,考虑到像素序列{p(i,k),i=1,2,…,Nk}形成了首尾相接的环,需要检查的j的取值范围是从i之后的第4个开始,沿像素序列序号增加的方向直到i的前4个像素。为便于表示起见引进取整函数E(·),它的作用是剔除小数,只保留整数。这样,以J表示i+4到Nk+i-4之间的整数,则j=J-NkE(J/(Nk+1))。因此,只要对满足条件

1≤i≤Nk

i+4≤J≤Nk+i-4

j=J-NkE(J/(Nk+1))

||p(i,k)-p(j,k)||≤1

的p(i,k)和p(j,k)中有一个像素不涂色,就不会导致单连通区域的分裂。

重复上述螺旋递进涂色程序,直到第K层边缘序列{p(i,K),i=1,2,…,NK}涂色之后,p(NK,K)的周围像素均为白色,则整个单连通区域的涂色完成。

以表示变量赋值,上述螺旋递进方法的程序为:

(1)任取像素值为0的单连通区域边缘上的一点p(1,0),置N0=1,k=1

(2)依次从{p(i,k-1),i=1,2,…,Nk-1}中边缘像素或其周围寻找一个像素值为0的像素p(1,k)开始,利用二值图像单连通区域边缘的确定方法求出该单连通区域的相邻像素不重复的边缘像素序列{p(i,k),i=1,2,…,Nk};

(3)若Nk≤4,将序列{p(i,k),i=1,2,…,Nk}的像素值全部置1,转(11);

(4)将其子边缘像素序列{p(i,k),i=1,2,…,Nk}的像素值全部置1,i=0;

(5)若i>Nk转(10);

(6)J=i+4;

(7)若J>Nk+i-4,转(5);

(8)j=J-NkE(J/(Nk+1)),若||p(i,k)-p(j,k)||≤1,将p(j,k)的像素值置0;

(9)转(7);

(10)转(2);

(11)涂色完成。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1