1.本技术涉及地理信息技术领域,尤其涉及一种矢量化海图绘制方法、装置及电子设备。
背景技术:2.目前在绘制矢量化海图的过程中,对于水深点,一般是在矢量化海图中手动锁定水深点位置并录入该水深点的水深值。但是,在存在大量水深点的情况下,手动录入的工作强度是非常巨大的,不仅效率低,而且录入的数据质量得不到保证。
技术实现要素:3.本技术实施例的目的提供一种矢量化海图绘制方法、装置及电子设备,用于提高矢量化海图中水深点的创建效率和准确性。
4.为了实现上述目的,本技术实施例采用下述技术方案:
5.第一方面,本技术实施例提供一种矢量化海图绘制方法,包括:
6.将栅格海图的目标字符序列图像分割为多个子图像,并确定每个子图像的尺寸信息和栅格坐标位置,其中,所述目标字符序列图像为包含目标字符序列的图像区域,所述目标字符序列用于表示所述栅格海图中的目标水深点,每个子图像包含所述目标字符序列中的一个字符;
7.基于所述多个子图像各自的尺寸信息,确定所述目标字符序列的数值类型;
8.基于所述数值类型、多种数字对应的模板数字图像以及所述多个子图像,确定所述目标水深点的水深值;
9.基于所述多个子图像各自的栅格坐标位置,确定所述目标水深点的地理坐标位置;
10.基于所述目标水深点的水深值和地理坐标位置,在所述栅格海图对应的矢量化海图中创建所述目标水深点对应的水深点物标。
11.第二方面,本技术实施例提供一种矢量化海图绘制装置,包括:
12.分割单元,用于将栅格海图的目标字符序列图像分割为多个子图像,并确定每个子图像的尺寸信息和栅格坐标位置,其中,所述目标字符序列图像为包含目标字符序列的图像区域,所述目标字符序列用于表示所述栅格海图中的目标水深点,每个子图像包含所述目标字符序列中的一个字符;
13.类型确定单元,用于基于所述多个子图像各自的尺寸信息,确定所述目标字符序列的数值类型;
14.水深值确定单元,用于基于所述数值类型、多种数字对应的模板数字图像以及所述多个子图像,确定所述目标水深点的水深值;
15.位置确定单元,用于基于所述多个子图像各自的栅格坐标位置,确定所述目标水深点的地理坐标位置;
16.矢量化单元,用于基于所述目标水深点的水深值和地理坐标位置,在所述栅格海图对应的矢量化海图中创建所述目标水深点对应的水深点物标。
17.第三方面,本技术实施例提供一种电子设备,包括:
18.处理器;
19.用于存储所述处理器可执行指令的存储器;
20.其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的方法。
21.第四方面,本技术实施例提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的方法。
22.本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:
23.考虑到栅格海图中的水深点的水深值是由一串数字组成,可通过将栅格海图的目标字符序列图像分割为包含一个字符的多个子图像,利用图像识别技术,基于多种数字对应的模板数字图像对每个子图像进行识别,即可得到每个子图像包含的字符表示的数值;在此基础上,考虑到水深值中整数部分的子图像和小数部分的子图像之间的尺寸存在差异,进而可利用这种差异性,基于多个子图像各自的尺寸信息,确定目标字符序列的数值类型,也即确定目标字符序列表示的数值是整数还是小数;进一步,基于目标字符序列的数值类型、多种数字对应的模板数字图像以及多个子图像,即可确定目标字符序列表示的数值,该数值即为目标水深点的水深值;此外,还基于多个子图像各自的栅格坐标位置,确定目标水深点的坐标位置;最后,基于目标水深点的水深值和地理坐标位置,在栅格海图对应的矢量化海图中创建目标水深点对应的水深点物标,即可实现矢量化海图中水深点的自动化绘制,整个过程无需人工参与,不仅可以提高绘制效率,还可以确保绘制质量不受人为因素的影响,有利于提高绘制准确率。
附图说明
24.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
25.图1为本技术的一个实施例提供的一种矢量化海图绘制方法的流程示意图;
26.图2为本技术的一个实施例提供的一种栅格海图及目标字符序列子图像的示意图;
27.图3为本技术的一个实施例提供的一种目标字符序列图像及其分割出的多个子图像的示意图;
28.图4为本技术的一个实施例提供的一种多种数字对应的模板数字图像的示意图;
29.图5为本技术的一个实施例提供的一种均值滤波器的滤波原理示意图;
30.图6为本技术的一个实施例提供的一种矢量化海图绘制装置的结构示意图;
31.图7为本技术的一个实施例提供的一种电子设备的结构示意图。
具体实施方式
32.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做
出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
33.本说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似对象,而不用于描述特定的顺序或先后次序。应理解,这样使用的数据在适当情况下可以互换,以便本技术实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,本说明书和权利要求书中“和/或”表示所连接对象的至少其中之一,字符“/”一般表示前后关联对象是一种“或”的关系。
34.如前文所述,相关技术中,在绘制矢量化海图的过程中,对于水深点,一般是在矢量化海图中手动锁定水深点位置并录入该水深点的水深值。但是,在存在大量水深点的情况下,手动录入的工作强度是非常巨大的,不仅效率低,而且录入的数据质量得不到保证。
35.有鉴于此,本技术实施例旨在提出一种矢量化海图绘制方法,考虑到栅格海图中的水深点的水深值是由一串数字组成,可通过将栅格海图的目标字符序列图像分割为包含一个字符的多个子图像,利用图像识别技术,基于多种数字对应的模板数字图像对每个子图像进行识别,即可得到每个子图像包含的字符表示的数值;在此基础上,考虑到水深值中整数部分的子图像和小数部分的子图像之间的尺寸存在差异,因而可利用这种差异性,基于多个子图像各自的尺寸信息,确定目标字符序列的数值类型,也即确定目标字符序列表示的数值是整数还是小数;进一步,基于目标字符序列的数值类型、多种数字对应的模板数字图像以及多个子图像,即可确定目标字符序列表示的数值,该数值即为目标水深点的水深值;此外,还基于多个子图像各自的栅格坐标位置,确定目标水深点的坐标位置;最后,基于目标水深点的水深值和地理坐标位置,在栅格海图对应的矢量化海图中创建目标水深点对应的水深点物标,即可实现矢量化海图中水深点的自动化绘制,整个过程无需人工参与,不仅可以提高绘制效率,还可以确保绘制质量不受人为因素的影响,有利于提高绘制准确率。
36.应理解,本技术实施例提供的矢量化海图绘制方法可以由电子设备或安装在电子设备中的软件执行。此处所谓的电子设备可以包括终端设备,比如智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备、智能家电、智能手表、车载终端、飞行器等;或者,电子设备还可以包括服务器,比如独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。
37.以下结合附图,详细说明本技术各实施例提供的技术方案。
38.请参见图1,为本技术的一个实施例提供的一种矢量化海图绘制方法的流程示意图,该方法可以包括如下步骤:
39.s102,将栅格海图的目标字符序列图像分割为多个子图像,并确定每个子图像的尺寸信息和栅格坐标位置。
40.其中,目标字符序列图像为包含目标字符序列的图像区域,目标字符序列用于表示栅格海图中的目标水深点。示例地,图2示出的栅格海图中的黑色矩形小框则表示目标字符序列图像,286为表示目标字符序列,其表示对应的水深点的水深值为28.6米。
41.具体而言,在上述s102中,可采用本领域常用的图像分割方法,将栅格海图的目标字符序列图像分割为多个子图像,其中,每个子图像包含目标字符序列中的一个字符。更为具体地,将栅格海图的目标字符序列图像分割为多个子图像,是指从栅格海图中分割出目标字符序列中每个字符的最小边框区域。示例地,如图3所示,沿用图2所示的目标字符序列
图像为例,可以将其划分为包含字符2的子图像1、包含字符8的子图像2以及包含字符6的子图像3。
42.进一步,在将栅格海图的目标字符序列图像分割为多个子图像之后,可确定针对每个子图像,确定出该子图像的顶点在栅格海图中的像素位置,进一步根据该子图像的顶点在栅格海图中的像素位置,确定该子图像的尺寸信息。其中,对于每个子图像而言,该子图像的栅格坐标位置包括该子图像的顶点pt在栅格海图中的像素位置(rowi,colj),其中,pt表示子图像的顶点,rowi表示栅格海图中的第i行像素,colj表示栅格海图中的第j列像素。另外,该子图像的尺寸信息可以包括该子图像的宽度和高度等。
43.s104,基于多个子图像各自的尺寸信息,确定目标字符序列的数值类型。
44.其中,数值类型包括整数和小数。若目标字符序列的数值类型为整数,则表明目标水深点的水深值为整数;若目标字符序列的数值类型为小数,则表明目标水深点的水深值包含小数。
45.考虑到水深值中整数部分的子图像和小数部分的子图像之间的尺寸存在差异,因而可利用这种差异性,基于多个子图像各自的尺寸信息,确定目标字符序列的数值类型,也即确定目标字符序列表示的数值是整数还是小数。
46.通过大量研究发现,水深值中整数部分的子图像和小数部分的子图像之间的差异性在高度上的表现最为明显,基于此,在一种可选的实现方式中,上述s104可以实现为:首先,获取第一子图像与第二子图像之间的高度差,其中,第一子图像为上述多个子图像中的任一个子图像,第二子图像为上述多个子图像中除第一子图像以外的其他子图像;若上述多个子图像中任意两个子图像之间的高度差小于或等于预设差值,也即若上述多个子图像中的第一子图像与所有第二子图像之间的高度差均小于或等于预设差值,则确定目标字符序列的数值类型为整数,也即目标水深点的水深值为整数;若上述多个子图像中第一子图像与至少一个第二子图像之间的高度差大于预设差值,则确定目标字符序列的数值类型为小数,也即目标水深点的水深值包含小数。
47.示例地,以图3所示的目标字符序列图像及其分割出的多个子图像为例,通过将这些子图像的高度进行比对可以得出,子图像1与子图像3之间的高度差大于预设差值,进而可确定目标字符序列的数值类型为整数。
48.更为具体地,由于目标字符序列中第一个字符通常为水深值的整数部分,可将包含目标字符序列中第一个字符的子图像作为基准图像,将该基准图像的高度与其他每个子图像的高度分别进行比对,若某个子图像与该基准图像之间的高度差小于或等于预设差值,则可确定该子图像包含的字符所表示的数值为目标水深点的水深值的整数部分;若某个子图像与该基准图像之间的高度差大于预设差值,则可确定该子图像包含的字符所表示的数值为目标水深点的水深值的小数部分。
49.示例地,继续沿用图3所示的目标字符序列图像及其分割出的子图像,可将包含目标字符序列中第一个字符2的子图像1作为基准图像,通过将子图像1的高度分别与子图像2及子图像3的高度进行比对可以得出,子图像1与子图像2之间的高度差小于预设差值,子图像1与子图像3之间的高度差大于预设差值,进而可确定子图像1包含的字符所表示的数值和子图像2包含的字符所表示的数值均属于目标水深点的水深值的整数部分,而子图像3包含的字符所表示的数值属于目标水深点的水深值的小数部分。
50.实际应用中,预设差值可以根据实际需要进行设置,本技术实施例对此不作限定。示例地,预设差值可通过对大量样本栅格海图中的目标字符序列图像进行分割得到的多个子图像之间的高度差以及目标字符序列的数值类型进行统计和分析确定,等等。
51.本技术实施例在此示出了上述s104的一种具体实现方式。当然,应理解,上述s104也可以采用本领域其他常用的方式实现,本技术实施例对此不作限定。
52.s106,基于数值类型、多种数字对应的模板数字图像以及多个子图像,确定目标水深点的水深值。
53.其中,上述多种数字可以包括常用的数字0~9。每种数字对应的模板数字图像的数量为至少一个。
54.实际应用中,每种数字对应的模板数字图像可以从样本栅格海图中截取得到并存储在模板库中,以便在需要使用时直接调用。当然,在得到每种数字对应的模板数字图像之后,还可为每个模板数字图像标注对应的数字。示例地,如图4所示,模板库中包括0~9中每个数字对应的两个模板数字图像,其中,较高的模板数字图像为从样本栅格海图中水深值的整数部分截取得到的图像,较低的模板数字图像为从样本栅格海图中水深值的小数部分截取得到的图像。
55.在其他一些示例中,每种数字对应的模板数字图像还可以包括该数字在不同字体下的模板数字图像等。应理解,每种数字对应的模板数字图像可以根据实际需要进行设置,本技术实施例对此不作限定。
56.考虑到栅格海图中的水深点的水深值是由一串数字组成,可通过将栅格海图的目标字符序列图像分割为包含一个字符的多个子图像,利用图像识别技术,基于多种数字对应的模板数字图像对每个子图像进行识别,即可得到每个子图像包含的字符表示的数值;进一步,基于目标字符序列的数值类型将这些子图像包含的字符表示的数值拼接起来,即可得到目标字符序列表示的数值,该数值即为目标水深点的水深值。
57.具体而言,为提高水深值的准确性,在一种可选的实现方式中,上述s106可以包括如下步骤:
58.s161,基于多种数字对应的模板数字图像,分别对多个子图像进行图像识别,以确定多个子图像各自包含的字符所表示的数值。
59.考虑到栅格海图的基本构图单元是栅格(也即像素),为了准确识别每个子图像包含的字符所表示的数值,可将每个子图像包含的字符的像素区域分别与每种数字对应的模板数字图像包含的字符的像素区域进行比对,从而确定出每个子图像包含的字符所表示的数值。
60.具体而言,上述s161可实现为:
61.步骤a1,分别对多种数字对应的模板数字图像以及多个子图像进行二值化处理,得到多种数字图像分别对应的模板二值化图像以及多个子图像分别对应的二值化图像。
62.其中,对图像进行二值化处理(image binarization)就是将图像上的像素点的灰度值设置为0或255,进而使图像呈现出明显的黑白效果。也即,将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。
63.通过对图像进行二值化处理,有利于在对图像做进一步处理时,图像的几何性质只与像素值为0或255的像素的位置有关,不再涉及像素的多级值,不仅使处理变得简单,而
且数据的处理和压缩量小。为了得到理想的二值化图像,一般采用封闭、连通的边界定义不交叠的区域。所有灰度大于或等于阈值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者处特定物体以外的物体区域。
64.在上述步骤a1中,对于每种数字对应的模板数字图像而言,所有灰度大于或等于阈值的像素被判定为属于该数字,也即该数字的像素区域,其像素值为255表示,而所有灰度小于阈值的像素被判定为不属于该数字,像素值为0,表示背景或者除数字以外的像素区域。
65.对于每个子图像而言,所有灰度大于或等于阈值的像素被判定为属于该子图像包含的字符,也即该子图像包含的字符的像素区域,其像素值为255表示,而所有灰度小于阈值的像素被判定为不属于该子图像包含的字符,像素值为0,表示背景或者除字符以外的像素区域。
66.步骤a2,基于目标模板二值化图像中各像素的像素值,从目标模板二值化图像中提取目标数字的像素区域。
67.其中,目标数字为多种数字中的任一种数字,目标模板二值化图像为目标数字对应的模板二值化图像。
68.具体而言,可从目标模板二值化图像中提取像素值为255的像素构成的区域确定为目标数字的像素区域。
69.实际应用中,为了消除目标模板二值化图像中的尖锐噪声,实现图像平滑、模糊等功能,在上述步骤a2之前,还可对目标模板二值化图像进行滤波处理。可选地,对目标模板二值化图像进行滤波处理可采用均值滤波方式,从频域观点来看,均值滤波是一种低通滤波器,通过对目标模板二值化图像进行均值滤波,可以滤除目标模板二值化图像中的高频信号,从而有助于消除目标模板二值化图像中的尖锐噪声。示例地,如图5所示,以3
×
3的均值滤波器为例,每个像素的像素值可基于自身及其相邻像素点的像素值计算得到,也即如下述公式(1)所示。
[0070][0071]
其中,p5表示图5中的像素点p5的像素值,pi表示图5中的像素点pi的像素值。
[0072]
步骤a3,基于目标二值化子图像中各像素的像素值,从目标二值化子图像中提取目标子图像包含的字符的像素区域。
[0073]
其中,目标子图像为上述多个子图像中的任一个子图像,目标二值化子图像为目标子图像对应的二值化子图像。
[0074]
具体而言,可从目标二值化子图像中提取像素值为255的像素构成的区域确定为目标子图像包含的字符的像素区域。
[0075]
实际应用中,为了消除目标二值化子图像中的尖锐噪声,实现图像平滑、模糊等功能,在上述步骤a3之前,还可对目标二值化子图像进行滤波处理。可选地,对目标二值化子图像进行滤波处理可采用均值滤波方式,从频域观点来看,均值滤波是一种低通滤波器,通过对目标二值化子图像进行均值滤波,可以滤除目标二值化子图像中的高频信号,从而有助于消除目标二值化子图像中的尖锐噪声。
[0076]
步骤a4,基于预设相关函数,确定目标子图像包含的字符的像素区域与目标数字的像素区域之间的相关系数。
[0077]
其中,预设相关函数可以根据实际需要进行设置,例如皮尔森(pearson)相关函数、斯皮尔曼(spearman)相关函数等,本技术实施例对此不作限定。
[0078]
示例地,预设相关函数可以为皮尔森相关函数,相应地,得到的相关系数为皮尔森相关系数(pearson correlation coefficient)。在此情况下,上述步骤a4可实现为:分别计算目标子图像包含的字符的像素区域与目标数字的像素区域之间的协方差、目标子图像包含的字符的像素区域的标准差以及目标数字的像素区域的标准差,进一步通过如下公式(2)所示的皮尔森相关函数,确定目标子图像包含的字符的像素区域与目标数字的像素区域之间的相关系数。
[0079][0080]
其中,ρ
x,y
表示目标子图像包含的字符的像素区域x与目标数字的像素区域y之间的相关系数,cov(x,y)表示目标子图像包含的字符的像素区域x与目标数字的像素区域y之间的协方差,σ
x
表示目标子图像包含的字符的像素区域x的标准差,σy表示目标数字的像素区域y的标准差,μ
x
表示目标子图像包含的字符的像素区域x的平均像素值,μy表示目标数字的像素区域y的平均像素值,e表示期望。
[0081]
步骤a5,从多种数字中选取满足预设相关条件的数字,作为目标子图像包含的字符所表示的数值。
[0082]
其中,预设相关条件为所对应的像素区域与目标子图像包含的字符的像素区域之间的相关系数最大。
[0083]
本技术实施例中,目标子图像包含的字符的像素区域与目标数字的像素区域之间的相关系数能够在一定程度上反映出目标子图像包含的字符与目标数字之间的相似度,该相关系数越大,则表明目标子图像包含的字符与目标数字之间的相似度越高;该相关系数越小,则表明目标子图像包含的字符与目标数字之间的相似度越低。基于此,可将上述相关系数最大的数字作为目标子图像包含的字符表示的数值。
[0084]
考虑到利用图像识别技术确定每个子图像中包含的字符表示的数值的工作量较大,为了提高处理效率,可采用图形处理器(graphics processing unit,gpu)与中央处理器(central processing unit,cpu)协同工作的异构计算架构执行上述步骤a1至步骤a5。在异构计算架构中,gpu yu cpu tong pcie总线连接在一起来协同工作,cpu所在位置称为主机端(host),而gpu所在位置称为设备端(device),gpu的并行计算引擎强大,可以大幅度加快计算速度,可以提速10到100倍。在需要大量的计算,特别是稠密矩阵向量计算,gpu可以快十倍以上。
[0085]
本技术实施例中,在上述s161中,可使用cpu分别对多种数字对应的模板数字图像以及多个子图像进行第一处理,以及使用gpu分别对多种数字对应的模板数字图像以及多个子图像进行第二处理。其中,第一处理包括除确定相关系数之外的其他处理,第二处理包括确定相关系数。也就是说,上述步骤a1~a3以及a5可由cpu执行,上述步骤a4可由gpu执行。
[0086]
示例地,在通过cpu执行上述步骤a1至a3之后,可将目标子图像包含的字符的像素
区域的信息和目标数字的像素区域的信息读取到gpu的内存中,然后在gpu中构造kernalcor函数(预设相关函数)计算目标子图像包含的字符的像素区域与目标数字的像素区域之间的协方差、目标子图像包含的字符的像素区域的标准差以及目标数字的像素区域的标准差;接着,设置gpu的block、thread个数,并由gpu执行kernelcor函数,得到目标子图像包含的字符的像素区域与目标数字的像素区域之间的相关系数,并将该相关系数写入cpu中,由cpu从多种数字中选取满足预设相关条件的数字,作为目标子图像包含的字符所表示的数值。
[0087]
值得说明的是,实际应用中,如果在识别过程中发现模板数字图像有识别错误的情况,可以实时对子图像进行标注后放入到模板库中,这样,当再次识别包含相似数字的图像时,就可正确识别数值。这样在学习的过程中模板数字图像越来越准确,做到灵活更新模板库。
[0088]
s162,基于目标字符序列的数值类型和多个子图像包含的字符所表示的数值,确定目标水深点的水深值。
[0089]
具体而言,若目标字符序列的数值类型为整数,则基于目标字符序列中的字符顺序,对目标字符序列中每个字符所表示的数值进行拼接,得到数值序列,并将该数值序列作为目标水深点的水深值。
[0090]
示例地,若目标字符序列211的数值类型为整数,对目标字符序列图像分割得到的子图像包括子图像1、子图像2和子图像3,子图像1中包含的字符表示的数值为2,子图像2中包含的字符表示的数值为1,子图像3中包含的字符表示的数值为1,则可按照子图像1-》子图像2-》子图像3的顺序,将每个子图像中包含的字符表示的数值进行拼接,得到数值序列211,该数字序列即为目标水深点的水深值211(米)。
[0091]
若目标字符序列的数值类型为小数,则基于目标字符序列中的字符顺序,对目标字符序列中每个字符所表示的数值进行拼接,得到数值序列,以及基于该数值序列和目标水深点的数据格式指示的小数位数,确定目标水深点的水深值。
[0092]
示例地,以图3所示的目标字符序列图像及其分割得到的多个子图像为例,若该目标字符序列286的数值类型为小数,子图像1中包含的字符表示的数值为2,子图像2中包含的字符表示的数值为8,子图像3中包含的字符表示的数值为6,则可按照子图像1-》子图像2-》子图像3的顺序,将每个子图像中包含的字符表示的数值进行拼接,得到数值序列286,由于目标水深点的数据格式指示的小数位数为1位,那么,可确定目标水深点的水深值为28.6(米)。
[0093]
本技术实施例在此示出了上述s106的一种具体实现方式。当然,应理解,上述s106也可以采用本领域其他常用的方式实现,本技术实施例对此不作限定。
[0094]
s108,基于多个子图像各自的栅格坐标位置,确定目标水深点的地理坐标位置。
[0095]
目标水深点的地理坐标位置可通过多种任意适当的方式确定。为了更准确地确定目标水深点的地理坐标位置,可基于目标字符序列的数值类型和截取目标字符序列图像的方式,选取相应的确定方式。
[0096]
具体而言,若截取字符序列图像的方式为通过鼠标点击栅格海图获取,那么,可获取鼠标点击位置在栅格海图中的像素位置(即第x行第x列像素),并基于像素位置为地理坐标位置之间的预设映射关系,将鼠标点击位置在栅格海图中的像素位置转化为对应的地理
坐标位置,该转化所得的地理坐标位置即为目标水深点的地理坐标位置ptmap。
[0097]
若截取字符序列图像的方式为通过框选栅格海图获取,则上s108具体可实现为:基于上述多个子图像各自的栅格坐标位置,对多个子图像中的至少两个子图像进行合并,得到合并图像及其顶点在栅格海图中的像素位置;基于像素位置与地理坐标位置之间的预设映射关系以及几何中心点在栅格海图中的像素位置,确定几何中心点的地理坐标位置;以及,将几何中心点的地理坐标位置确定为目标水深点的地理坐标位置。
[0098]
示例地,若目标字符序列211的数值类型为整数,对目标字符序列图像分割得到的子图像包括子图像1、子图像2和子图像3,那么,可将子图像1~子图像3进行合并,得到合并图像unionbox,并根据每个子图像的顶点在栅格海图中的像素位置,计算合并图像unionbox的集合中心点rowcolcenterunion及其在栅格海图中的像素位置pt(row,col);然后,基于像素位置与地理坐标位置之间的预设映射关系,将该像素位置pt(row,col)转化为对应的地理坐标位置,该转化得到的地理坐标位置即为目标水深点的地理坐标位置ptmap。
[0099]
又如,以图3所示的目标字符序列图像及其分割得到的多个子图像为例,若该目标字符序列286的数值类型为小数,那么,可将目标字符序列的整数部分的子图像1和子图像2进行合并,得到合并图像unionbox,并根据每个子图像的顶点在栅格海图中的像素位置,计算合并图像unionbox的集合中心点rowcolcenterunion及其在栅格海图中的像素位置pt(row,col);然后,基于像素位置与地理坐标位置之间的预设映射关系,将该像素位置pt(row,col)转化为对应的地理坐标位置,该转化得到的地理坐标位置即为目标水深点的地理坐标位置ptmap。
[0100]
s110,基于目标水深点的水深值和地理坐标位置,在栅格海图对应的矢量化海图中创建目标水深点对应的水深点物标。
[0101]
本技术实施例中,栅格海图对应的矢量化海图是依据相应的海图制图规范和标准对栅格海图上的各种内容进行编码和属性的定义,确定海图要素的类别、等级和特征等,由此使得栅格海图上的内容可以用其编码、属性描述加上相应的坐标位置来表示。
[0102]
在上述s110中,在得到目标水深点的水深值和地理坐标位置之后,可对目标水深点的水深值进行编码及属性描述,再加上目标水深点的地理坐标位置,即可完成目标水深点对应的水深点物标的创建。
[0103]
通过本技术一个或多个实施例提供的矢量化海图绘制方法,考虑到栅格海图中的水深点的水深值是由一串数字组成,可通过将栅格海图的目标字符序列图像分割为包含一个字符的多个子图像,利用图像识别技术,基于多种数字对应的模板数字图像对每个子图像进行识别,即可得到每个子图像包含的字符表示的数值;在此基础上,考虑到水深值中整数部分的子图像和小数部分的子图像之间的尺寸存在差异,进而可利用这种差异性,基于多个子图像各自的尺寸信息,确定目标字符序列的数值类型,也即确定目标字符序列表示的数值是整数还是小数;进一步,基于目标字符序列的数值类型、多种数字对应的模板数字图像以及多个子图像,即可确定目标字符序列表示的数值,该数值即为目标水深点的水深值;此外,还基于多个子图像各自的栅格坐标位置,确定目标水深点的坐标位置;最后,基于目标水深点的水深值和地理坐标位置,在栅格海图对应的矢量化海图中创建目标水深点对应的水深点物标,即可实现矢量化海图中水深点的自动化绘制,整个过程无需人工参与,不仅可以提高绘制效率,还可以确保绘制质量不受人为因素的影响,有利于提高绘制准确率。
[0104]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0105]
此外,与上述图1所示的矢量化海图绘制方法相对应地,本技术实施例还提供一种矢量化海图绘制装置。请参考图6,为本技术的一个实施例提供的一种矢量化海图绘制装置600的结构示意图,该装置600可以包括:
[0106]
分割单元610,用于将栅格海图的目标字符序列图像分割为多个子图像,并确定每个子图像的尺寸信息和栅格坐标位置,其中,所述目标字符序列图像为包含目标字符序列的图像区域,所述目标字符序列用于表示所述栅格海图中的目标水深点,每个子图像包含所述目标字符序列中的一个字符;
[0107]
类型确定单元620,用于基于所述多个子图像各自的尺寸信息,确定所述目标字符序列的数值类型;
[0108]
水深值确定单元630,用于基于所述数值类型、多种数字对应的模板数字图像以及所述多个子图像,确定所述目标水深点的水深值;
[0109]
位置确定单元640,用于基于所述多个子图像各自的栅格坐标位置,确定所述目标水深点的地理坐标位置;
[0110]
矢量化单元650,用于基于所述目标水深点的水深值和地理坐标位置,在所述栅格海图对应的矢量化海图中创建所述目标水深点对应的水深点物标。
[0111]
可选地,所述水深值确定单元具体用于:
[0112]
分别对所述多种数字对应的模板数字图像以及所述多个子图像进行二值化处理,得到所述多种数字分别对应的模板二值化图像以及所述多个子图像分别对应的二值化子图像;
[0113]
基于目标模板二值化图像中各像素的像素值,从所述目标模板二值化图像中提取目标数字的像素区域,其中,所述目标数字为所述多种数字中的任一种数字,所述目标模板二值化图像为所述目标数字对应的模板二值化图像;
[0114]
基于目标二值化子图像中各像素的像素值,从所述目标二值化子图像中提取目标子图像包含的字符的像素区域,其中,所述目标子图像为所述多个子图像中的任一个子图像,所述目标二值化子图像为所述目标子图像对应的二值化子图像;
[0115]
基于预设相关函数,确定所述目标子图像包含的字符的像素区域与所述目标数字的像素区域之间的相关系数;
[0116]
从所述多种数字中选取满足预设相关条件的数字,作为所述目标子图像包含的字符所表示的数值,其中,所述预设相关条件为所对应的像素区域与所述目标子图像包含的字符的像素区域之间的相关系数最大。
[0117]
可选地,所述水深值确定单元,基于多种数字对应的模板数字图像,分别对所述多个子图像进行图像识别,以确定所述多个子图像各自包含的字符所表示的数值,包括:
[0118]
分别对所述多种数字对应的模板数字图像以及所述多个子图像进行二值化处理,得到所述多种数字分别对应的模板二值化图像以及所述多个子图像分别对应的二值化子
图像;
[0119]
基于目标模板二值化图像中各像素的像素值,从所述目标模板二值化图像中提取目标数字的像素区域,其中,所述目标数字为所述多种数字中的任一种数字,所述目标模板二值化图像为所述目标数字对应的模板二值化图像;
[0120]
基于目标二值化子图像中各像素的像素值,从所述目标二值化子图像中提取目标子图像包含的字符的像素区域,其中,所述目标子图像为所述多个子图像中的任一个子图像,所述目标二值化子图像为所述目标子图像对应的二值化子图像;
[0121]
基于预设相关函数,确定所述目标子图像包含的字符的像素区域与所述目标数字的像素区域之间的相关系数;
[0122]
从所述多种数字中选取满足预设相关条件的数字,作为所述目标子图像包含的字符所表示的数值,其中,所述预设相关条件为所对应的像素区域与所述目标子图像包含的字符的像素区域之间的相关系数最大。
[0123]
可选地,所述水深值确定单元,基于多种数字对应的模板数字图像,分别对所述多个子图像进行图像识别,以确定所述多个子图像各自包含的字符所表示的数值,包括:
[0124]
使用中央处理器分别对所述多种数字对应的模板数字图像以及所述多个子图像进行第一处理,其中,所述第一处理包括除确定相关系数之外的其他处理;
[0125]
使用图形处理器分别对所述多种数字对应的模板数字图像以及所述多个子图像进行第二处理,得到所述多个子图像各自包含的字符所表示的数值,其中,所述第二处理包括确定相关系数。
[0126]
可选地,所述水深值确定单元,基于所述数值类型和所述多个子图像各自包含的字符所表示的数值,确定所述目标水深点的水深值,包括:
[0127]
若所述数值类型为整数,则基于所述目标字符序列中的字符顺序,对所述目标字符序列中每个字符所表示的数值进行拼接,得到数值序列,并将所述数值序列作为所述目标水深点的水深值;
[0128]
若所述数值类型为小数,则基于所述目标字符序列中的字符顺序,对所述目标字符序列中每个字符所表示的数值进行拼接,得到数值序列,以及基于所述目标水深点的数据格式指示的小数位数和所述数值序列,确定所述目标水深点的水深值。
[0129]
可选地,每个子图像的尺寸信息包括该子图像的高度,所述类型确定单元具体用于:
[0130]
获取第一子图像与第二子图像之间的高度差,其中,所述第一子图像为所述多个子图像中的任一子图像,所述第二子图像为所述多个子图像中除所述第一子图像以外的其他子图像;
[0131]
若所述多个子图像中任意两个子图像之间的高度差小于或等于预设差值,则确定所述目标字符序列的数值类型为整数;
[0132]
若所述多个子图像中第一子图像与至少一个第二子图像之间的高度差大于所述预设差值,则确定所述目标字符序列的数值类型为小数。
[0133]
可选地,每个子图像的栅格坐标位置包括该子图像的顶点在所述栅格海图中的像素位置;
[0134]
所述位置确定单元具体用于:
[0135]
基于所述多个子图像各自的栅格坐标位置,对所述多个子图像中的至少两个子图像进行合并,得到合并图像及其顶点在所述栅格海图中的像素位置;
[0136]
基于所述合并图像的顶点在所述栅格海图中的像素位置,确定所述合并图像的几何中心点在所述栅格海图中的像素位置;
[0137]
基于像素位置与地理坐标位置之间的预设映射关系以及所述几何中心点在所述栅格海图中的像素位置,确定所述几何中心点的地理坐标位置;
[0138]
将所述几何中心点的地理坐标位置确定为所述目标水深点的地理坐标位置。
[0139]
显然,本技术实施例提供的矢量化海图绘制装置能够作为图1所示的矢量化海图绘制方法的执行主体,例如图1所示的矢量化海图绘制方法中,步骤s102可由图6所示的矢量化海图绘制装置中的分割单元执行,步骤s104可由图6所示的矢量化海图绘制装置中的类型确定单元执行,步骤s106可由图6所示的矢量化海图绘制装置中的水深值确定单元执行,步骤s108可由图6所示的矢量化海图绘制装置中的位置确定单元执行,步骤s110可由图6所示的矢量化海图绘制装置中的矢量化单元执行。
[0140]
根据本技术的另一个实施例,图6所示的矢量化海图绘制装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本技术实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本技术的其他实施例中,矢量化海图绘制装置也可以包括其他单元,在实际应用中,这些功能也可以由其他单元协助实现,并且可以由多个单元协作实现。
[0141]
根据本技术的另一个实施例,可以通过在包括中央处理单元(central processing unit,cpu)、随机存取存储介质(random access memory,ram)、只读存储介质(read-only memory,rom)等处理元件和存储元件的例如计算机的通用计算设备上,运行能够执行如图1所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图6中所示的矢量化海图绘制装置,以及来实现本技术实施例的矢量化海图绘制方法。所述计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质转载于电子设备中,并在其中运行。
[0142]
图7是本技术的一个实施例电子设备的结构示意图。请参考图7,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
[0143]
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0144]
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算
机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
[0145]
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成矢量化海图绘制装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
[0146]
将栅格海图的目标字符序列图像分割为多个子图像,并确定每个子图像的尺寸信息和栅格坐标位置,其中,所述目标字符序列图像为包含目标字符序列的图像区域,所述目标字符序列用于表示所述栅格海图中的目标水深点,每个子图像包含所述目标字符序列中的一个字符;
[0147]
基于所述多个子图像各自的尺寸信息,确定所述目标字符序列的数值类型;
[0148]
基于所述数值类型、多种数字对应的模板数字图像以及所述多个子图像,确定所述目标水深点的水深值;
[0149]
基于所述多个子图像各自的栅格坐标位置,确定所述目标水深点的地理坐标位置;
[0150]
基于所述目标水深点的水深值和地理坐标位置,在所述栅格海图对应的矢量化海图中创建所述目标水深点对应的水深点物标。
[0151]
上述如本技术图1所示实施例揭示的矢量化海图绘制装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0152]
该电子设备还可执行图1的方法,并实现矢量化海图绘制装置在图1所示实施例的功能,本技术实施例在此不再赘述。
[0153]
当然,除了软件实现方式之外,本技术的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
[0154]
本技术实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下操作:
[0155]
将栅格海图的目标字符序列图像分割为多个子图像,并确定每个子图像的尺寸信
息和栅格坐标位置,其中,所述目标字符序列图像为包含目标字符序列的图像区域,所述目标字符序列用于表示所述栅格海图中的目标水深点,每个子图像包含所述目标字符序列中的一个字符;
[0156]
基于所述多个子图像各自的尺寸信息,确定所述目标字符序列的数值类型;
[0157]
基于所述数值类型、多种数字对应的模板数字图像以及所述多个子图像,确定所述目标水深点的水深值;
[0158]
基于所述多个子图像各自的栅格坐标位置,确定所述目标水深点的地理坐标位置;
[0159]
基于所述目标水深点的水深值和地理坐标位置,在所述栅格海图对应的矢量化海图中创建所述目标水深点对应的水深点物标。
[0160]
总之,以上所述仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
[0161]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0162]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0163]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0164]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。