发明名称 路网栅格数字地图自动矢量化方法
摘要 一种图像处理技术领域的路网栅格数字地图自动矢量化方法,首先将路网栅格数字地图读入计算机内存,并检测路网图像上的道路路口,即包括交叉道路路口和道路终端,同时标记构成道路路口的像素;然后,以每个道路路口为中心检测其相邻的道路路口,同时生成该道路路口到各个相邻道路路口的像素链,紧接着在各像素链上等间隔添加节点,即为记录道路形状的图形点;最后,删除上一步添加的冗余节点,并按照标准矢量地图格式保存矢量化结果。本发明生成的路网矢量数字地图能给智能交通系统和车辆导航系统中的轨迹校正操作带来较大的便利。
申请公布号 CN101630463B 申请公布日期 2010.12.01
申请号 CN200910055614.9 申请日期 2009.07.30
申请人 上海交通大学 发明人 史文欢;黄茂祥;孙兵;刘允才
分类号 G09B29/00(2006.01)I;G01C21/26(2006.01)I 主分类号 G09B29/00(2006.01)I
代理机构 上海交达专利事务所 31201 代理人 王锡麟;王桂忠
主权项 1.一种路网栅格数字地图自动矢量化方法,其特征在于,首先将路网栅格数字地图读入计算机内存,并检测路网图像上的道路路口,即包括交叉道路路口和道路终端,同时标记构成道路路口的像素;然后,以每个道路路口为中心检测其相邻的道路路口,同时生成该道路路口到各个相邻道路路口的像素链,紧接着在各像素链上等间隔添加路口节点,即为记录道路形状的图形点;最后,删除上一步添加的冗余节点,并按照标准矢量地图格式保存矢量化结果,所述方法具体包括以下步骤:第一步,检测路网图像上的道路路口:先将路网栅格数字地图读入计算机内存,然后通过划分模板对路网栅格数字地图进行模板运算将每个道路路口设置为节点像素,制成道路路口数字地图;第二步,在道路路口数字地图上添加路口节点:以道路路口数字地图上每个道路路口为中心添加路口节点,并且记录添加路口节点过程中所生成的放射状路体数据结构,全部的放射状路体数据结构便构成矢量路网地图;第三步,删除冗余节点:删除上一步生成的路网矢量数字地图中的冗余节点,得到最终的路网矢量数字地图;所述的模板运算是指:对于路网栅格数字地图上任意一个单元像素p(i,j),以该单元像素为中心设置划分模板,从路网栅格数字地图上读取划分模板;所述的读取划分模板为正方形,其边长为2~10个像素;所述的单元像素的像素值为1;所述的节点像素的像素置为3;所述的读取划分模板是指:(1)将划分模板中的一个单元像素的像素值置零,并将该单元像素对应分模板内的坐标存入划分队列并作为队尾元素,然后依次取出划分队列的队首元素的坐标,并搜索该坐标对应的像素周围8个方向上相邻的像素中的单元像素,并将搜索到的单元像素的像素值置零后将其坐标存入划分队列中作为更新后的队尾元素,以此循环直至整个划分模板中的单元像素的坐标值均被存入划分队列中;(2)将划分模板内的所有像素的像素值置零,再将划分队列中所有元素对应坐标的像素值置1,划分队列中的坐标即为单像素宽边缘,然后清空该划分模板;(3)依次搜索单像素宽边缘上的每一个坐标的8个方向上相邻的像素中的单位像素,并记录搜索成功的次数进行道路路口判断;(4)重复步骤(1)至步骤(3)直至路网栅格数字地图上的每一个单元像素都进行过道路路口判断,则对应路网栅格数字地图上的全部道路路口均被遍历且对应的像素值均被置为3,制成道路路口数字地图;所述的道路路口判断,具体如下:a)当搜索成功次数为0,表示当前单像素宽边缘上的坐标是噪声,将该坐标对应的像素值置零;b)当搜索成功次数为2,表示当前单像素宽边缘上的坐标不在道路路口上,返回步骤(1)进行下一个单像素宽边缘的判断;c)当搜索成功次数为1或大于2,表示当前单像素宽边缘上的坐标在道路路口上,将该坐标对应的像素值置3,即将该单元像素修改为节点像素;所述的路口节点是指存储路网拓扑结构信息和几何形状信息的坐标点;所述的放射状路体数据结构是指:以某一道路路口为中心,沿着交于该道路路口的道路延伸直至遇到其他道路路口结束,在该过程中所涉及的道路体构成一个放射状路体数据结构,其中:中心道路路口为主道路路口,外围道路路口为从道路路口;所述的以道路路口数字地图上每个道路路口为中心添加路口节点是指:(1)对于道路路口数字地图上的任意节点像素p(i,j),其中i和j分别表示该节点像素的坐标值,检查其构成的道路路口是否已作为主道路路口运算过;如没有,备份栅格地图,将备份地图上的p(i,j)置零,同时将其坐标放入划分队列的队尾,以划分队列非空为条件循环:取出划分队列的队首元素,将其存入道路路口堆栈,同时取出该队首元素对应的像素的8个方向上相邻的像素中的节点像素,搜索到后置零,并将被置零像素的坐标放入划分队列的队尾;循环结束时,道路路口堆栈中存储的坐标所对应的像素即构成主道路路口,计算道路路口堆栈中存储坐标的中心坐标,记为(x<sub>m</sub>,y<sub>m</sub>);(2)将主道路路口周围的节点像素置零,并将它们的坐标放入划分队列的队尾,以划分队列非空为条件循环:取出划分队列的队首元素,按其所在路段存入堆栈Chain[i],其中:i=0,1,…,搜索取出像素8个方向上相邻的像素中的单位像素和节点像素,若搜到的为单位像素,则将其置零,并将其坐标放入划分队列的队尾;若为节点像素,将其置零,并将其坐标放入次划分队列的队尾,然后以次划分队列非空为条件循环:取出次划分队列的队首元素,存入道路路口堆栈中,搜索取出元素8个方向上相邻的像素中的节点像素,搜到后置零,并将被置零像素的坐标放入次划分队列的队尾;循环结束时,道路路口堆栈中存储的坐标所对应的像素即构成一个从道路路口,计算其中心坐标,记为<img file="FSB00000240178200031.GIF" wi="151" he="68" />,其中:i=0,1,…,s表示道路路口堆栈;(3)在各像素链上,首先找到中间位置的像素,并记录其坐标或中点坐标;然后,自中间位置的像素坐标或中点坐标到像素链的两端,按等间隔设置像素为节点,并记录它们的坐标,最终,将主道路路口中心坐标、从道路路口中心坐标和等间隔设置的像素坐标整理并记录成放射状路体数据结构;所述的删除冗余节点是指:计算每一个路体上任意三个相邻节点的非共线性度,其中路体是指两个道路路口之间的道路体,由除道路路口节点外的若干节点表示,并将其与阈值ε比较,如果c<ε,则表示三个相邻节点中的中间节点是冗余节点,故将其在矢量地图数据中的坐标删除;所述的冗余节点是指代表路体形状的非必需节点,即除直线型路体的两个必需节点以外的节点;所述的非共线性度是指衡量三个相邻节点的共线性程度的参数,具体计算式为c=|(y<sub>3</sub>-y<sub>2</sub>)(x<sub>2</sub>-x<sub>1</sub>)-(x<sub>3</sub>-x<sub>2</sub>)(y<sub>2</sub>-y<sub>1</sub>)|,其中(x<sub>1</sub>,y<sub>1</sub>),(x<sub>2</sub>,y<sub>2</sub>),(x<sub>3</sub>,y<sub>3</sub>)分别为三个相邻节点的坐标。
地址 200240 上海市闵行区东川路800号