一种扫描纸质海图水深点自动矢量化及信息提取方法与流程

文档序号:12305995阅读:2406来源:国知局
一种扫描纸质海图水深点自动矢量化及信息提取方法与流程

本发明涉及一种河口海岸科学、港口及航道工程等,具体地说是一种扫描纸质海图水深点自动矢量化及信息提取方法。



背景技术:

海图是精确测绘海洋水域和沿岸地物信息的专门地图形式,主要内容包括:岸线、岛屿、礁石、水深、航标和无线电导航台等,是航海必不可少的参考数据。同时,也是河口海岸科学研究,海岸工程、港口及航道工程应用获取基础数据的重要数据源,在航海、河口海岸及海洋科学研究领域有着广泛的应用。长期以来,人们只能够从有关部门购买纸质海图,再扫描成数字化的图像通过手工矢量化的方式将其转变为便于计算机处理的形式加以应用。尽管近些年已经可以直接获得矢量格式的海图,但历史上积存的大量纸质海图对于认识近岸海洋环境的发展演变是不可替代的数据源,在科研和工程应用中具有重要意义。每张海图上都有数以千计的点要素、线要素信息及大量的其它信息,常规的手工矢量化方式需要通过不断重复性的劳动来完成,工作极其枯燥乏味,而且强度大、效率低、易出错、一致性差,极大地制约了纸质海图在科研和工程领域的应用。因此,迫切需要提高扫描纸质海图矢量化的效率。



技术实现要素:

本发明根据海图制图规范,提出一种扫描纸质海图水深点自动矢量化及信息提取方法,实现了海图水深点要素自动精确定位和矢量化、水深数据自动提取的功能,以提升纸质海图矢量化的效率,挖掘历史海图数据的价值,为科研和工程应用提供便利。

本发明的技术方案是:

一种扫描纸质海图水深点自动矢量化及信息提取方法,它包括以下步骤:

s1、扫描纸质海图;

s2、对扫描的海图图像文件进行几何校正(海图属于地理数据的一种,而地理数据要与实际空间位置对应起来才有意义,利用扫描仪扫描进电脑之后仅仅是一个普通的图片,因此在使用之前需要对其进行几何校正);创建点矢量文件,文件参考坐标系与已校正的扫描海图图像文件一致;

s3、框选海图图像中任一包含单个水深点的图像区域,并获取框选的图像区域左上角的空间坐标(x,y)及x、y方向的像元大小sx、sy;

s4、读取框选区域的图像数据,识别区域中的数字,获得数字序列以及数字序列中各数字上边到框顶边的顶边距离top、下边到框顶边的底边距离bottom、左边到框左边的左边距离left、右边到框左边的右边距离right;

s5、根据数字序列中各数字间的位置关系,获取整数位和小数位,得到水深点水深读数;

s6、计算水深点的空间坐标;

s7、根据所获取的水深点空间坐标在步骤s2创建的点矢量文件中生成点要素并将水深数据写入属性表,在图上显示获取的水深读数和空间位置以便判断正确与否;

s8、目视判断所获取的水深点读数和空间位置是否正确,若不正确,进行修正,若正确,则重复s2至s8步,完成整幅海图的矢量化。

进一步地,步骤s2中,采用gis软件工具进行几何校正,如arcgis。

进一步地,步骤s4中,采用ocr引擎识别所选图像区域中的数字。

进一步地,步骤s5中,获取整数位和小数位,得到水深点水深读数的具体步骤为;

s5.1、计算数字序列首数字和尾数字的顶边距离top位置差,若大于像元阈值则可判断为存在小数位,否则不存在小数位;

s5.2、若存在小数位,则将数字序列转变为数值类型,再除以10,得到水深点水深读数;若不存在小数位,将数字序列转变为数值类型,即得到正确的读数。

进一步地,步骤s5.1中,像元阈值为2-4个像元,优选2个像元。

进一步地,步骤s6具体包括:

s6.1、首先根据数字识别结果获取数字序列第一个数字左上角在所选图像区域中的坐标(x,y);

s6.2、然后根据是否存在小数位,分别计算整数位的宽度w和高度h:

若水深读数存在小数位,则通过数字序列中倒数第二个数字的右边距离right减去第一个数字的左边距离left得到宽度w,再通过排除数字序列最后一个数字之后所有数字的最大底边距离bottom减去最小顶边距离top得到高度h;

若不存在小数位,则通过数字序列中最后一个数字的右边距离righ减去第一个数字的左边距离left得到宽度w,再通过数字序列中所有数字的最大底边距离bottom减去最小顶边距离top得到高度h;

s6.3、采用下述公式计算整数位中心点在整幅海图中的坐标(cx,cy),即水深点的空间坐标:

cx=x+(x+w/2)×sx

cy=y-(y+h/2)×sy

其中:x,y表示框选的图像区域左上角的空间坐标(这个坐标是几何纠正之后的地理坐标(单位是经纬度)或投影坐标(单位是m或其它距离单位));x,y表示数字序列第一个数字左上角在所选图像区域中的屏幕坐标,单位是像元,sx、sy表示x、y方向的像元大小,w表示水深点数值整数位宽度,h表示水深点数值整数位高度。

进一步地,步骤s2中,事先依照几何校正后的海图数字格式创建的0至9十个数字模板图像。

进一步地,步骤s8中,修正步骤为:

s8.1、操作人员手动录入水深点正确读数,确认后程序自动修改点矢量文件中对应的属性值;

s8.2、根据所录入数字整数位,从0至9数字模板中读取相应的数字,若整数位只有1位只需读取其中一个数字模板图像,否则需要读取相应位数的数字模板图像,并合成为一个图像,获取整数位的宽度w和高度h;

s8.3、分别对所选图像区域和前述步骤获取的合成数字模板图像执行傅里叶变换得到各自的频谱图;

s8.4、对两个频谱图执行相关操作(correlation),然后对相关操作(correlation)所得到的图像执行傅里叶逆变换,获取傅里叶逆变换所得图像中的极大值点坐标(x,y)即为水深点整数位左上角在所选图像区域中的坐标(x,y);

s8.5、采用下述公式计算整数位中心点在整幅海图中的坐标(cx,cy),即水深点的空间坐标:

cx=x+(x+w/2)×sx

cy=y-(y+h/2)×sy

其中:x,y表示框选的图像区域左上角的空间坐标;x,y表示数字序列第一个数字左上角在所选图像区域中的坐标,sx、sy表示x、y方向的像元大小,w表示水深点数值整数位宽度,h表示水深点数值整数位高度。

本发明的有益效果:

本发明能够大幅度提高海图水深点矢量化工作的效率。对于一幅1:150,000的海图,一个熟练的矢量化操作员通常需要半天至一天的不间断工作方能完成全部水深点的矢量化,利用本方法仅需要1至2小时即可实现。

附图说明

图1是本发明的流程图。

图2是局部海图。

其中的数字即水深点,点的位置在整数位的中心,有1位和2位的整数位,也有不带小数位的,所有小数位只有1位。

图3是数字在框选图像区域中的位置示意图。

图4是获取水深点读数和坐标的流程图。

其中:topi、bottomi、lefti、righti分别代表数字序列中第i个数字相对于所选数字区域的top、bottom、left、right位置;max()、min()分别代表取最大值和最小值。

图5是水深点读数及空间位置修正流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步的说明。

如图1所示,一种扫描纸质海图水深点自动矢量化及信息提取方法,它包括以下步骤:

s1、扫描纸质海图;

s2、对扫描的海图图像文件进行几何校正(海图属于地理数据的一种,而地理数据要与实际空间位置对应起来才有意义,利用扫描仪扫描进电脑之后仅仅是一个普通的图片,因此在使用之前需要对其进行几何校正,采用gis软件工具进行几何校正,如arcgis);创建点矢量文件,文件参考坐标系与已校正的扫描海图图像文件一致;事先依照几何校正后的海图数字格式创建的0至9十个数字模板图像;

s3、框选海图图像中任一包含单个水深点的图像区域,并获取框选的图像区域左上角的空间坐标(x,y)及x、y方向的像元大小sx、sy;

s4、读取框选区域的图像数据,识别区域中的数字,如图3所示,获得数字序列以及数字序列中各数字上边到框顶边的顶边距离top、下边到框顶边的底边距离bottom、左边到框左边的左边距离left、右边到框左边的右边距离right;

s5、根据数字序列中各数字间的位置关系,获取整数位和小数位,得到水深点水深读数,具体步骤为;

s5.1、计算数字序列首数字和尾数字的顶边距离top位置差,若大于像元阈值则可判断为存在小数位,否则不存在小数位;像元阈值为2-4个像元,优选2个像元;

s5.2、若存在小数位,则将数字序列转变为数值类型,再除以10,得到水深点水深读数;若不存在小数位,将数字序列转变为数值类型,即得到正确的读数。

s6、计算水深点的空间坐标,具体为;

s6.1、首先根据数字识别结果获取数字序列第一个数字左上角在所选图像区域中的坐标(x,y);

s6.2、然后根据是否存在小数位,分别计算整数位的宽度w和高度h:

若水深读数存在小数位,则通过数字序列中倒数第二个数字的右边距离right减去第一个数字的左边距离left得到宽度w,再通过排除数字序列最后一个数字之后所有数字的最大底边距离bottom减去最小顶边距离top得到高度h;

若不存在小数位,则通过数字序列中最后一个数字的右边距离righ减去第一个数字的左边距离left得到宽度w,再通过数字序列中所有数字的最大底边距离bottom减去最小顶边距离top得到高度h;

s6.3、采用下述公式计算整数位中心点在整幅海图中的坐标(cx,cy),即水深点的空间坐标:

cx=x+(x+w/2)×sx

cy=y-(y+h/2)×sy

其中:x,y表示框选的图像区域左上角的空间坐标(这个坐标是几何纠正之后的地理坐标(单位是经纬度)或投影坐标(单位是m或其它距离单位));x,y表示数字序列第一个数字左上角在所选图像区域中的屏幕坐标,单位是像元,sx、sy表示x、y方向的像元大小,w表示水深点数值整数位宽度,h表示水深点数值整数位高度。

s7、根据所获取的水深点空间坐标在步骤s2创建的点矢量文件中生成点要素并将水深数据写入属性表,在图上显示获取的水深读数和空间位置以便判断正确与否;

s8、目视判断所获取的水深点读数和空间位置是否正确,若不正确,进行下述修正;

s8.1、操作人员手动录入水深点正确读数,确认后程序自动修改点矢量文件中对应的属性值;

s8.2、根据所录入数字整数位,从0至9数字模板中读取相应的数字,若整数位只有1位只需读取其中一个数字模板图像,否则需要读取相应位数的数字模板图像,并合成为一个图像,获取整数位的宽度w和高度h;

s8.3、分别对所选图像区域和前述步骤获取的合成数字模板图像执行傅里叶变换得到各自的频谱图;

s8.4、对两个频谱图执行相关操作,然后对相关操作所得到的图像执行傅里叶逆变换,获取傅里叶逆变换所得图像中的极大值点坐标(x,y)即为水深点整数位左上角在所选图像区域中的坐标(x,y);

s8.5、采用下述公式计算整数位中心点在整幅海图中的坐标(cx,cy),即水深点的空间坐标:

cx=x+(x+w/2)×sx

cy=y-(y+h/2)×sy

其中:x,y表示框选的图像区域左上角的空间坐标;x,y表示数字序列第一个数字左上角在所选图像区域中的坐标,sx、sy表示x、y方向的像元大小,w表示水深点数值整数位宽度,h表示水深点数值整数位高度。

目视判断所获取的水深点读数和空间位置是否正确,若正确,则重复s2至s8步,完成整幅海图的矢量化。

本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。

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