掌桥专利:专业的专利平台
掌桥专利
首页

一种基于精准矢量数图转换的投影的方法

文献发布时间:2023-06-19 09:29:07



技术领域

本发明属于涉及一种基于精准矢量数图转换的投影的方法。

背景技术

地球是个类球体,其表面是不可展平的曲面,绘制地图时就无法等比保真,为了解决这一问题于是就产生了地图投影。地图投影利用一定数学法则把地球表面的经、纬线转换到平面上,在不同的纬度地区,或者在不同的业务场景中产生了多种投影方式。

当人们使用计算机辅助进行图像的识别、叠加,现有的投影技术在具体情境下的应用其精准性和体验都很不理想,失真性是其最大的诟病。投影准确度和使用体验不能令人满意。究其原因,图像本身并不包含地理信息,所以计算机也无法识别和处理这类图像。

目前常用的投影有10余种例如EPSG:4326、EPSG:3857、极地方位投影等。但是这些方法在使用中,很多数据获取时并不包含地理信息,大家在使用这类地图时,可以通过地图上的海岸线、国、省等行政边界或者海流、湖泊等地形特征来识别其地理位置。然而这种情况下对熟知区域也许可以有近似的判别,对于陌生的区域就会非常困难,且无法精准。此外在缩放地图时投影目标只会做相应比例的放大缩小,并无法配合到球面地球的边界变化,失真比率过高,直接影响了展现效果和最终的策略决定。

为了彻底解决这个精准和用户终端体验和高效投影的问题,我们提出了一个崭新的方法,就是以地球为参照物,建立一个坐标体系,将目标图层先打散再参考坐标系来进行投影。此方法在实际应用中

发明内容

本发明目的是为了解决将基于不同类型地图投影及坐标的图形相互自由转换,并将某一种投影类型图形中的信息描绘在另一类投影类型的图形上,或将不同投影类型的图形叠加到地理信息系统(GIS)统一平台上;从而,由不同环境产生图形中所包含的信息得以相互融合和集成。

为了实现上述目的,本发明采用以下技术方案:一种基于精准矢量数图转换的投影的方法,所述方法包括如下步骤:

S1、采集原图像中的易识别点经纬度,及原图坐标采集,得到两个相对应的二维数据阵列

S2、对已知对应关系,在矩阵中进行散点的插值,得到目标和源的坐标在值域上的对应关系,建立源和目标坐标矩阵;

S3、采用图片空间变换算法,对图像进行几何校正,得到针对伪经纬度坐标体系的图像,得到目标场景/坐标体系的图像

S4、通过反向利用插值,得到指定经纬度点在原图中的坐标

进一步的,所述采集坐标,得到二维数据阵列步骤如下:

S101、把经纬线绘制上去你会发现它并非横平竖直的网络,在地图(附图1)的ABCDEFG等标注点,采集要素为迪卡尔坐标和对应的EPSG:3857坐标;

S102、采集后的结果以二维数存储。

grid_src=[[x1,y1],[x2,y2],..,[x_n,y_n]]

grid_dst=[[lon1,lat1],[lon2,lat2],..,[lon_n,lat_n]]

进一步的,所述建立源和目标坐标矩阵的方法如下:

S201、获取图像的大小规格:

h,w=image.size

以图像大小range[0,h,hj]*range[0,w,wj]建立坐标矩阵。复数hj、wj定义了生成grid数据的步长,返回结果为x,y坐标在grid上的分布矩阵。

grid_y,grid_x=grid[0:h:hj,0:w:wj]

S202、对已知对应关系,在矩阵中进行散点的插值,得到目标和源的坐标在值域上的对应关系。

grid_z=griddata(grid_dst,grid_src,(grid_y,grid_x),method='cubic')

cubic是常用的一种插值方式,不同插值方式,效果会有一些差异,如何选对取决于不同的应用场景。常用的插值方式还有linear、cubic、nearest等。

S203、得到两个坐标维度的对应关系,它们分别为二个维度在矩阵中的对应关系,第一个维度都是一个二维矩阵。

map_x=[ar[:,1]for ar in grid_z].reshape(h,w)

map_y=[ar[:,0]for ar in grid_z].reshape(h,w)

进一步的,所述得到目标场景/坐标体系的图像的步骤如下:

局部区域内对图像进行拉伸、挤压,这种操作在不同的位置是不同的,得到的结果可以进行几何化。它的计算方式可以看成把一个图像中特定位置的像素放置到另一个图片指定位置的过程,为了完成映射过程,有必要获得一些插值为非整数像素坐标,因为源图像与目标图像的像素坐标不是一一对应的。

S301、建立图像数值化矩阵

在进行数据处理前,需要将图像数据转行成数值结构,这里采用RGBA模式,转换后的数据包含四个色彩通道,值的数据类型为uint8,范围[0,255],shape为(h,w,4) 的三维数值矩阵。

image=image.convert('RGBA')

imgGrid=to_matrix(image)

h,w,c=imgGrid.shape

S302、我们通过转换图像的形状来表达每个像素的位置f(x,y)=g(h(x,y))这里f() 是目标图像,g()是源图像,h(x,y)是作用于(x,y)的映射方法函数

假入我们有一个图像IM,我们想满足下面的条件作图像转换:

h(x,y)=(IM.cols-x,y)

dst(x,y)=src(g_x(x,y),g_y(x,y))

其中src:源图像dst:目标图像,与src相同大小map_x:x方向的映射参数.它相当于方法h(i,j)的第一个参数map_y:y方向的映射参数.注意map_y和 map_x与src的大小一致。

转换方法

dst=remap(imgGrid,map_x,map

与现有技术相比,本发明的有益效果是:

本发明从根本上突破了技术壁垒,且由于设计的便捷性和灵活性使其投入生产的方式很容易实现,可以快速灵活的解决很多特定领域相关企事业单位在获取数据、制定决策上遇到的难题。同时,很多国家在各自拥有领先技术的领域人为设置技术障碍,使他人无法获取其源数据或核心技术方案;而该项发明可以灵活的通过公开渠道,如互联网等直接获取其信息和数据,并集成到GIS平台上,为我所用,为我国企业和单位在上述领域中的工作带来极大的提升。

附图说明:

图1为本发明的地图坐标点采集要素

具体实施方式:

为了令本发明的目的、特征、优点更加明显易懂,下面对本发明的实施例进行清楚、完整地描述。显然,所描述的实施例仅为本发明的一部分实施例,而不是全部实施例。基于本发明的实施例,本领域技术人员在未进行创造性劳动前提下获得的所有其它实施例,如只改变用途而不改变权利要求涉及基本原理的实施例,都属于本发明保护的范围

具体实施方式一:本发明公开了一种基于精准矢量数图转换的投影的方法,所述方法包括以下步骤:

S1、采集原图像中的易识别点经纬度,及原图坐标采集,得到两个相对应的二维数据阵列

S2、对已知对应关系,在矩阵中进行散点的插值,得到目标和源的坐标在值域上的对应关系,建立源和目标坐标矩阵;

S3、采用图片空间变换算法,对图像进行几何校正,得到针对伪经纬度坐标体系的图像,得到目标场景/坐标体系的图像

S4、通过反向利用插值,得到指定经纬度点在原图中的坐标

具体实施方式二:本实施方式是对具体实施方式一作出的进一步说明,所述S1包括如下步骤:

S101、把经纬线绘制上去你会发现它并非横平竖直的网络,在地图(附图1)的ABCDEFG 等标注点,采集要素为迪卡尔坐标和对应的EPSG:3857坐标;

S102、采集后的结果以二维数存储。

grid_src=[[x1,y1],[x2,y2],..,[x_n,y_n]]

grid_dst=[[lon1,lat1],[lon2,lat2],..,[lon_n,lat_n]]

具体实施方式三:本实施方式是对具体实施方式一作出的进一步说明,所述S2包括如下步骤:

S201、获取图像的大小规格:

h,w=image.size

以图像大小range[0,h,hj]*range[0,w,wj]建立坐标矩阵。复数hj、wj定义了生成grid数据的步长,返回结果为x,y坐标在grid上的分布矩阵。

grid_y,grid_x=grid[0:h:hj,0:w:wj]

S202、对已知对应关系,在矩阵中进行散点的插值,得到目标和源的坐标在值域上的对应关系。

grid_z=griddata(grid_dst,grid_src,(grid_y,grid_x),method='cubic')

cubic是常用的一种插值方式,不同插值方式,效果会有一些差异,如何选对取决于不同的应用场景。常用的插值方式还有linear、cubic、nearest等。

S203、得到两个坐标维度的对应关系,它们分别为二个维度在矩阵中的对应关系,第一个维度都是一个二维矩阵。

map_x=[ar[:,1]for ar in grid_z].reshape(h,w)

map_y=[ar[:,0]for ar in grid_z].reshape(h,w)

具体实施方式四:本实施方式是对具体实施方式一作出的进一步说明,所述S3包括如下步骤:

局部区域内对图像进行拉伸、挤压,这种操作在不同的位置是不同的,得到的结果可以进行几何化。它的计算方式可以看成把一个图像中特定位置的像素放置到另一个图片指定位置的过程,为了完成映射过程,有必要获得一些插值为非整数像素坐标,因为源图像与目标图像的像素坐标不是一一对应的。

S301、建立图像数值化矩阵

在进行数据处理前,需要将图像数据转行成数值结构,这里采用RGBA模式,转换后的数据包含四个色彩通道,值的数据类型为uint8,范围[0,255],shape为(h,w, 4)的三维数值矩阵。

image=image.convert('RGBA')

imgGrid=to_matrix(image)

h,w,c=imgGrid.shape

S302、我们通过转换图像的形状来表达每个像素的位置f(x,y)=g(h(x,y))这里f()是目标图像,g()是源图像,h(x,y)是作用于(x,y)的映射方法函数

假入我们有一个图像IM,我们想满足下面的条件作图像转换:

h(x,y)=(IM.cols-x,y)

dst(x,y)=src(g_x(x,y),g_y(x,y))

其中src:源图像dst:目标图像,与src相同大小map_x:x方向的映射参数.它相当于方法h(i,j)的第一个参数map_y:y方向的映射参数,注意map_y和 map_x与src的大小一致。

转换方法

dst=remap(imgGrid,map_x,map

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

相关技术
  • 一种基于精准矢量数图转换的投影的方法
  • 一种SVG矢量图转换为LPF矢量图的方法
技术分类

06120112186919