第3节 单元替代和模板识别
推荐给好友
打印
加入收藏
更新于2008-06-15 22:38:31

3.1 单元替代法

上面介绍的颜色替代法,是建立在文字、道路、背景(还有过渡)要素颜色集的区分之上。而颜色集在目前还是由人工编辑指定,这是人机交互过程中最麻烦的一步。为此,我再介绍一种不需要区分要素颜色集的噪声消除法——单元替代法。

单元替代法的第一步就是将地图分块,同色相连的是一块,每一块称为一个单元。单元的全集就是地图。单元之间的关系我区分为两种,一种是包含关系,一种是非包含关系。如果一个单元A完全在另一个单元B的包围之中,那么就称这两个单元具有包含关系,否则就不具有包含关系。对于存在包含关系的两个单元,B单元称为外部单元,A单元称为内部单元。单元替代法就是将存在包含关系的内部单元替换为外部单元。经过替代之后,A类文字噪声和B类文字噪声都被消除了。和上面的算法相比,这种方法的速度要慢一些,但不需要人工来指定各要素的颜色集,因此非常省事。

还有,围绕一个背景块单元的“一圈”道路,在一般情况下,由于被其上面的文字所断开或其本身就由不同的颜色组成,所以都是由几个单元所组成。如果恰好就是一个单元,则这“一圈”道路和其中的背景块单元就构成了包含关系,背景块就会被替换为道路。如果有孤立的道路,这条道路处于一个背景单元的包围之中,那么这条道路就会被替换为背景。这两种情况我都不希望发生,我只希望把被道路所包围的文字替换为道路,把被背景所包围的文字替换为背景。为此,只能采取一个妥协的办法,进行单元替代时,如果内部单元的面积大于某个设定值,说明这是一个背景单元,就不允许替代。大多数情况下,道路和背景单元的面积比较大,而文字单元的面积比较小,所以这种方法不失为一个良策。

3.2 用模板来识别背景

使用单元替代法消除噪声之后,如果道路和背景的颜色不存在交集,那么可以将地图的颜色只区分为道路和背景两种颜色集(这不太麻烦),然后使用颜色提取法将道路提取出来。

如果道路和背景的颜色存在交集,我们还可以根据单元的形状识别背景。但是要求相邻的道路和背景不能是同一种颜色,否则,这个方法也不灵。

我们知道,背景单元是块状,而道路单元是条状,背景单元的长度和宽度一般都会大于道路的最大宽度,道路单元自然不会。所以,我做了一个正方形的模板,它的边长比道路的最大宽度稍大一点点。如果一个单元可以完全容纳下这个正方形,就认为这个单元是背景单元,否则就不是。本方法就叫模板识别法。将不是背景的单元提取出来,就是道路,这就是模板提取法。

我承认,这种识别方法不是很好,因为在某些情况下,背景单元有可能比较小,结果当作道路被提取出来了。所以应该对单元进行进一步的形状分析,这留给后面的同学去做吧。

3.3 经验之谈

介绍这么多了,似乎大家在拿到一个地图之后,还是不知道怎么操作。我觉得有必要谈谈我个人的经验了。

常用到的地图要么是256色,要么是24Bit,如果是后者,请先用其他的软件转换为256色再来处理。为什么不用24Bit地图,因为24Bit地图颜色太多,难以处理。如果使用颜色替代法消除噪声,要手工去区分几十种,上百种颜色,这还可以忍受,如果去区分上百万种颜色,绝对不可能。如果使用单元替代法,24Bit地图中颜色众多,每一个单元都极小,不可能达到消除噪声的目的。有人可能这样想,可以先对颜色进行聚类嘛,是啊,把24Bit地图变为256色地图不正是聚类嘛。对本应用来说,这种聚类虽然在效果上不是最好,但是省事,不用自己再编算法了。后面接着做本题目的同学可以考虑如何对24Bit地图进行颜色聚类。

拿到一个地图之后,首先要对地图的状况做一下分析,看看RoadIdent能不能处理,一般情况下,如果相邻的道路和背景存在同色的情况,不能处理,如果背景中存在严重的纹理,也处理不了,因为RoadIdent还不具备纹理分析的能力。除此之外,只要不是太差,都不妨试一试。

本论文共介绍了三种提取道路的方法,颜色提取法,扩展提取法和模板提取法。还介绍了若干种消除噪声的方法,颜色替代法,单元替代法,平滑,腐蚀,填洞等。总的思路就是通过消噪声处理,使地图能够以一种方法将道路提取出来。

这就需要操作者理解这些方法的特点,掌握它们的适用范围。

根据地图中背景的状况大致可以分为两个方向,如果背景块中的颜色比较的单一,其中的文字噪声较少(或者虽然多,但大部分是B类文字,而不是C类文字),那么可以采用单元替代法来消除文字噪声(这比较省事),在这之前可以先平滑一下,以减少地图中单元的个数。单元替代之后,可以采用颜色提取法或模板提取法将道路提取出来。

如果背景块中文字繁多(大量存在C类文字),颜色混乱,几乎找不出一块干净平整的地方,那么可以先用颜色替代法消除部分的文字噪声,如果允许,尽量腐蚀一次或几次,最后用扩展提取法把道路提取出来。

当然,这只是一个概括论述,各种消噪声方法和提取道路方法可以交叉反复的使用,直至将道路提取出来。因为RoadIdent将中间的处理结果都保存到文件中,所以某一步处理不理想没关系,可以倒回来重新处理。

 

<<上一节    下一节>>




 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.