一种坐标转换方法及装置与流程

文档序号:12126119阅读:385来源:国知局
一种坐标转换方法及装置与流程

本发明涉及全景地图技术领域,具体而言,涉及一种坐标转换方法及装置。



背景技术:

在平安城市项目以及公安的指挥调度业务中,地图占有十分重要的位置,目前二维地图应用已经十分成熟,并且在公安的指挥调度领域发挥着重大的作用,如PGIS地图、天地图等。二维地图能够在全局上十分好地把握整个城市的情况,用户使用十分方便,并且深受好评。相比二维地图,卫星地图、E都市地图和三维地图都是在细节上对二维地图的补充。例如,当某处发生一件紧急事件,公安希望能够了解现场的情况,这时二维地图无法回答用户现场状况的问题,此时高分辨率卫星地图、E都市和三维地图对细节的详细性便能够让用户清晰地了解现场的状况。由于高分辨率卫星地图获取难度较大、E都市和纯三维地图制作成本非常高,这导致这些技术在推广上面临较大的问题。

全景地图技术是近期新起的一项技术,该技术相对于三维来说制作成本极低,真实感却十分强。并且随着VR技术的发展不断得到深化和普及,制作成本也进一步降低。经发明人研究发现,相比于三维地图,全景地图的应用难点在于其坐标系并非由完整的世界坐标系构成,比较难以构建真实坐标系与全景坐标系之间的映射关系,这对于安防行业使用全景地图构成了一个难点。因此,如何完成二维地图到三维地图之间的坐标转换是业界目前亟待解决的难题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种坐标转换方法及装置,以改善上述问题。

本发明较佳实施例提供一种坐标转换方法,该方法包括:

将待转换的二维平面图中待转换点的像素坐标映射到全景球面上,生成全景场景;

将所述全景场景的三维坐标系转换为角度坐标系;

根据所述待转换点与所述全景球面的中心点之间的经纬度相对关系计算出所述待转换点与所述全景球面的中心点之间的相对角度关系;

根据所述待转换点与所述全景球面的中心点之间的相对角度关系以及所述角度坐标系到所述三维坐标系的逆转换关系,生成所述待转换点的三维坐标值。

本发明另一较佳实施例提供一种坐标转换装置,该装置包括:

全景场景生成模块,用于将待转换的二维平面图中待转换点的像素坐标映射到全景球面上,生成全景场景;

坐标系转换模块,用于将所述全景场景的三维坐标系转换为角度坐标系;

角度转换模块,用于根据所述待转换点与所述全景球面的中心点之间的经纬度相对关系计算出所述待转换点与所述全景球面的中心点之间的相对角度关系;

三维坐标转换模块,用于根据所述待转换点与所述全景球面的中心点之间的相对角度关系以及所述角度坐标系到所述三维坐标系的逆转换关系,生成所述待转换点的三维坐标值。

本发明实施例提供的一种坐标转换方法及装置,利用经纬度及高度将空间中的任意一点映射到角度坐标系中,通过全景地图与二维地图之间的强关联,实现了二维坐标到三维坐标之间的转换,实施方便,易于推广应用。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明较佳实施例提供的一种全景地图坐标转换系统的示意性结构框图。

图2为本发明较佳实施例提供的一种坐标转换装置的功能模块框图。

图3为本发明较佳实施例提供的一种三维引擎的结构框图。

图4为本发明较佳实施例提供的一种三维坐标系中坐标轴的位置关系示意图。

图5为图2所示的角度计算子模块的结构框图。

图6为本发明较佳实施例提供的一种相对距离与经纬度距离之间的关系示意图。

图7为本发明较佳实施例提供的一种坐标转换方法的流程图。

图8为图7中步骤S101的子步骤示意图。

图9为图7中步骤S105的子步骤示意图。

图10为图9中步骤S1053的子步骤示意图。

图11为图7中步骤S107的子步骤示意图。

图标:10-全景地图坐标转换系统;100-坐标转换装置;110-全景场景生成模块;111-标识子模块;113-映射子模块;130-坐标系转换模块;150-角度转换模块;151-获取子模块;153-角度计算子模块;1531-距离计算子模块;1533-差值计算子模块;1535-相对角度计算子模块;170-三维坐标转换模块;171-坐标系逆转换子模块;173-三维坐标生成子模块;200-处理器;300-存储器;400-显示器;500-三维引擎;501-3D渲染模块;502-场景管理模块;503-输入控制模块;504-内存管理模块;505-几何基础模块。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

如图1所示,是本发明较佳实施例提供的一种全景地图坐标转换系统10的示意性结构框图。所述全景地图坐标转换系统10包括坐标转换装置100、处理器200、存储器300及显示器400。

所述处理器200、所述存储器300及所述显示器400之间直接或间接地电性连接,以实现数据的传输或交互。例如,三者通过通讯总线或信号线实现电性连接。所述坐标转换装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器300中的软件功能模块。所述处理器200用于执行存储器300中存储的可执行模块,例如所述坐标转换装置100包括的软件功能模块或计算机程序。

其中,存储器300可以是,但不限于,随机读取存储器(Random Access memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器300用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,下述本发明实施例任一实施方式所揭示的流程定义的方法可以应用于处理器200中,或者由处理器200实现。

处理器200可能是一种集成电路芯片,具有信号的处理能力。上述处理器200可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。

可以理解,图1所示的结构仅为示意,所述全景地图坐标转换系统10还可以包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

请参阅图2,是本发明较佳实施例提供的一种坐标转换装置100的功能模块框图。所述坐标转换装置100应用于图1所示的全景地图坐标转换系统10。所述坐标转换装置100包括全景场景生成模块110、坐标系转换模块130、角度转换模块150及三维坐标转换模块170。

其中,所述全景场景生成模块110用于将待转换的二维平面图中待转换点的像素坐标映射到全景球面上,生成全景场景。

在本实施例中,所述二维平面图通过采集图片数据,并对采集到的所述图片数据进行处理以生成。例如,采用图像采集装置对场景进行多角度环视拍摄以捕捉整个场景的图像信息,将捕捉到的图像信息合成二维平面图。在实际操作时,为了确保对整个场景的图像信息的完整采集,在使用图像采集装置时,尽量使采集到的图像的画面保持水平,以便后续的图像处理。

可选地,所述全景场景生成模块110可以包括标识子模块111和映射子模块113。

所述标识子模块111用于在所述二维平面图上标识出采集所述图片数据的拍摄点的像素坐标以及所述待转换点的像素坐标。

在本实施例中,所述待转换点为生成的所述二维平面图中的像素点,所述待转换点为多个,多个所述待转换点均匀分布于待转换的二维平面图上。为了方便计算,在转换过程中,可以从多个所述待转换点中选取一个待转换点作为参考点,标识出该待转换点,例如将其记作A1。同时,标识出采集所述图片数据的拍摄点的像素坐标,例如将其记作A2。

所述映射子模块113用于将所述待转换点的像素坐标映射到全景球面上,生成全景场景,所述全景球面的中心点为所述拍摄点。

可选地,在本实施例中,在标识出所述待转换点A1的像素坐标后,可以通过三维引擎渲染后将所述待转换点映射到全景球面上以生成全景场景。请参阅图3,为本实施例较佳实施例提供的一种三维引擎500的结构框图。如图3所示,所述三维引擎500包括3D(Three-Dimensional)渲染模块501、输入控制模块503、场景管理模块502、内存管理模块504及几何基础模块505。可选地,常用的三维引擎500包括OpenGL(Open Graphics Library)和DirectX(Direct eXtension)。其中,OpenGL能灵活方便地实现二维和三维的高级图像技术,在性能上表现优异。OpenGL具有建模、变换、光照处理、色彩处理等功能。DirectX能实现高速地实时渲染、交互式音乐和环境音效等。

可选地,在本实施例中,通过所述三维引擎500中的3D渲染模块501来实现所述待转换点的图像渲染工作。需要说明的是,所述3D渲染模块501是所述三维引擎500中的其中一个模块,并不是完全独立的部分,需要与其他的模块一起才能完成整个图像渲染工作。

所述3D渲染模块501可以将所述待转换点的像素以其在三维坐标系中的显示形式以显示出来。具体地,在所述处理器200中,三维世界的表示由坐标系和坐标系的点所构成,此外,还包括了场景中所有物体的材质、纹理及光照等信息。这些信息是由所述处理器200中的数据来表示,并不能直接显示在所述显示器400中。所述3D渲染模块501可以实现将所述处理器200中的所述信息转换为所述显示器400可以显示出的图像。而这些显示出的图像是映射到全景球面上的,所述全景球面的中心点即为采集所述图片数据的拍摄点A2。所述全景球面上的图像围绕所述拍摄点,此时所述图像纹理完全覆盖以所述拍摄点为视点的视线,能提供给用户以真实感。

具体地,所述坐标系转换模块130用于将所述全景场景的三维坐标系转换为角度坐标系。

在本实施例中,物体在全景场景中的位置主要与视点,即所述全景球面的中心点A2的角度相关,所以首先需要将全景场景的三维坐标系转换为角度坐标系。

具体地,如图4所示,所述三维坐标系是基于空间中的三条相互垂直的坐标轴:x轴、y轴、z轴。要定义所述空间中的一个点,需要三个坐标:x、y、z。三个所述坐标轴构成三个平面:x-y平面、x-z平面、y-z平面。所述三个平面将整个空间分为8个子空间,即8个象限。

可选地,在所述全景场景中选定一个参考点Q,将该参考点的三维坐标表示为Q(x,y,z),其中,x为该参考点在x轴方向的值,y为该参考点在y轴方向的值,z为该参考点在z轴方向上的值。将该参考点的角度坐标表示为Q(va,ha),其中,va为垂直角度值,ha为水平角度值。

可选地,所述坐标系转换模块130能够根据该参考点的三维坐标值Q(x,y,z)以及以下所示的坐标系转换关系,得到该参考点的角度坐标值Q(va,ha)。

r=Math.Sqrt(x*x+y*y+z*z)

a1=Math.A tan(y/-z)

a2=Math.A cos(-x/r)

ha=(float)(a1*180/Math.PI)

va=(float)(a2*180/Math.PI)

其中,r、a1、a2为过程参数,PI为π。在本实施例中,为了便于计算,当Q点位于水平方向上的第一象限或第三象限时,其对应的水平角度值ha增加180度。

角度转换模块150用于根据所述待转换点与所述全景球面的中心点之间的经纬度相对关系计算出所述待转换点与所述全景球面的中心点之间的相对角度关系。

在本实施例中,所述全景场景中的物体在场景中的显示位置主要取决于场景的拍摄点,即所述全景球面的中心点A2,与所述物体之间的相对角度。即,所述物体在所述场景中的显示位置是以所述全景球面的中心点A2为视点,以此视点发出的视线所观察到的显示画面。

可选地,在实际操作中,操作者操控键盘或鼠标,使得所述视点和所述视线的方向发生变化,则所述待转换点A1的显示位置即会随之发生变化。因此需要得到所述全景球面的中心点A2与所述待转换点A1之间的相对角度关系。

可选地,所述角度转换模块150可以包括获取子模块151和角度计算子模块153。

所述获取子模块151用于获取所述全景球面的中心点的经纬度和高度。

需要说明的是,在实际应用情况下,所述全景球面的中心点的经纬度和高度较难估算,常常会存在误差,该误差会对整体的映射造成影响。所以需要通过估算的方法获取所述全景球面的中心点的经纬度和高度值,并且不断调整该值以使结果尽可能地达到准确。

可以采用以下方式对所述全景球面的中心点的经纬度进行估算。在全景场景中向场景的底部投射一个底部点,该底部点的角度坐标为(0,180)。该底部点位于所述全景场景的底部,通过卫星定位,可以得到该底部点在卫星地图中的位置。根据该底部点在卫星地图中的位置以确定该全景场景的中心点的经纬度。通过上述向底部投射的方法得到的所述全景球面的中心点的经纬度能够满足映射的要求。

再对所述全景球面的中心点的高度进行估算。需要说明的是,若所述底部点的高度值比实际值偏高时,会造成所述待转换点的映射点向所述底部点靠近。若所述底部点的高度值比实际值偏低,会造成所有映射点产生偏离。所述底部点的高度值主要是影响到所述待转换点相对于所述全景球面的中心点在垂直方向上的角度。可选地,在本实施例中,通过逐渐地增加或减小所述底部点在垂直方向上的值,以观察物体在所述全景场景中的映射是否正确,以最终确定所述底部点的高度值,即得到所述全景球面的中心点的高度值。

在确定所述全景球面的中心点的经纬度和高度值后,再通过所述角度计算子模块153以根据所述全景球面的中心点的经纬度和高度及所述待转换点的经纬度和高度计算出所述待转换点与所述全景球面的中心点之间的相对角度关系。

在本实施例中,为了方便计算,将所述待转换点A1的经纬度坐标表示为A1(mlat,mlng,mhit),将所述全景球面的中心点A2的经纬度坐标表示为A2(clat,clng,chit)。

可选地,所述角度计算子模块153包括距离计算子模块1531、差值计算子模块1533和相对角度计算子模块1535,请参阅图5。

所述距离计算子模块1531用于根据所述待转换点A1的经纬度和高度以及所述全景球面的中心点A2的经纬度和高度,计算出所述待转换点A1与所述全景球面的中心点A2之间的距离。

在本实施例中,计算获得所述待转换点A1与所述全景球面的中心点A2之间的距离的方式有多种,本发明实施例列举了其中一种实现方式,如下所示。

首先,需要将所述待转换点A1及所述全景球面的中心点A2的经纬度值转换为弧度值。例如,若A1点的纬度值为23.5度,那么转换后其弧度值则为23.5*PI/180。在本实施例中,将转换后的所述待转换点A1的纬度的弧度值表示为Lat1InRad、经度的弧度值表示为Long1InRad。将所述全景球面的中心点A2的纬度的弧度值表示为Lat2InRad、经度的弧度值表示为Long2InRad。

Lat1InRad=this.Lat*(Math.PI/180)

Long1InRad=this.Lng*(Math.PI/180)

Lat2InRad=p.Lat*(Math.PI/180)

Long2InRad=p.Lng*(Math.PI/180)

然后分别计算出所述待转换点A1与所述全景球面的中心点A2之间的经纬度弧度值之差,其经度的弧度值之差表示为Longitude、纬度的弧度值之差表示为Latitude。

Longitude=dLong2InRad-dLong1InRad

Latitude=dLat2InRad-dLat1InRad

计算出所述待转换点A1与所述全景球面的中心点A2之间的正弦值和余弦值。

b=Math.Pow(Math.Sin(dLatitude/2),2)+Math.Cos(dLat1InRad)*

Math.Cos(dLat2InRad)*Math.Pow(Math.Sin(dLongitude/2),2)

计算出所述待转换点A1与所述全景球面的中心点A2之间的正切值。

c=2*Math.Atan2(Math.Sprt(b),Math.Sqrt(1-b))

最后,得到所述待转换点A1与所述全景球面的中心点A2之间的距离Distance。

Dis tan ce=(6378137)*c

其中,数值6378137为赤道半径值。通过上述的方法可以计算出所述待转换点A1与所述全景球面的中心点A2之间的距离。

所述差值计算子模块1533用于根据所述待转换点与所述全景球面的中心点之间的距离计算出所述待转换点与所述全景球面的中心点之间的经度差、纬度差和高度差。

在本实施例中,不失一般性地,假设函数以正北方向也就是指南针的方向为0度,以顺时针的方向增加。如图6所示,若Distance的距离为d,则dx为X轴方向的长度,也就是经度方向上的长度。dy为Y轴方向的长度,也就是纬度方向上的长度。通过以下方式,可以计算出所述待转换点A1与所述全景球面的中心点A2分别在纬度和经度方向上的距离,分别表示为lngdis、latdis。

lngdis=dx=Distance*sin(θ)

latdis=dy=Distance*cos(θ)

通过计算所述待转换点A1与所述全景球面的中心点A2之间的高度可以获得两点间的高度差heightdis。

所述相对角度计算子模块1535用于根据所述经度差、纬度差和高度差计算出所述待转换点与所述全景球面的中心点之间的相对垂直角度值和水平角度值。

可选地,以生成的角度坐标系为应用坐标系,根据获得的两点间的经度差、纬度差和高度差计算出所述待转换点A1相对于所述全景球面的中心点A2的垂直角度值和水平角度值,分别表示为va和vh。

double q1=Math.A tan(latdis/ln gdis)

double q2=Math.Acos(heightdis/r)

double va=(float)((q1*180)/Math.PI)

double ha=(float)((q2*180)/Math.PI)

其中,q1、q2为过程参数。在本实施例中,为了方便计算,当所述待转换点A1相对于所述全景球面的中心点A2在垂直方向上位于第二象限或第三象限时,所述待转换点A1的垂直角度值va增加180度。

可选地,在本实施例中,若所述全景球面的中心点的经纬度和高度确定后,就可以精确地计算出所述待转换点的二维坐标到三维坐标之间的映射关系。但是,实际情况中可能存在图像的畸变等原因会造成部分区域点位有所偏移,往往会存在几度的偏差。在本实施例中,可以采用以下方式来降低这种因素带来的影响。

va=((Math.A tan(latdis/ln gdis)*180)/Math.PI)+σv

ha=(Math.A cos(heightdis/r)*180/Math.PI)+σh

其中σv为所述全景球面的中心点在垂直方向上的偏差值,σh为所述全景球面的中心点在水平方向上的偏差值。经过实际的测算,这两者的值在分布上是连续的,即在同一区域会连续地增加或持续的降低。可选地,在本实施例中,使用一个三阶方程来拟合σv和σh。具体地,可随机选取多个样本点,在二维平面图和全景场景中通过人工方法来确定多个所述样本点的经纬度值和角度值。然后使用样本估计的方法回归拟合出σv和σh的方程,以得到σv和σh。

所应说明的是,在普通的应用场景中,通过所述获取子模块151估算出的所述全景球面的中心点的经纬度和高度值就可满足实际应用需求,并不必进行σv和σh的拟合计算。

三维坐标转换模块170用于根据所述待转换点与所述全景球面的中心点之间的相对角度关系以及所述角度坐标系到所述三维坐标系的逆转换关系,生成所述待转换点的三维坐标值。

在本实施例中,在获得所述待转换点A1相对于所述全景球面的中心点A2的相对角度关系后,需要将该相对角度关系映射到三维坐标系中,以进一步地标识出所述待转换点A1在全景地图中的位置。

可选地,所述三维坐标转换模块170可以包括坐标系逆转换子模块171和三维坐标生成子模块173。

所述坐标系逆转换子模块171用于根据所述三维坐标系到所述角度坐标系之间的坐标系转换关系得到所述角度坐标系到所述三维坐标系的逆转换关系。

所述三维坐标生成子模块173用于根据计算出的所述待转换点与所述全景球面的中心点之间的相对垂直角度值、水平角度值以及所述逆转换关系生成所述待转换点的三维坐标值,完成所述待转换点的二维坐标到三维坐标的转换。

c1=(float)(ha/360*2*Math.PI)

c2=(float)(va/360*2*Math.PI)

y=(float)(radius*Math.cos(c1))

z=-(float)(radius*Math.sin(c1)*Math.cos(c2))

x=(float)(radius*Math.sin(c1)*Math.sin(c2))

其中,c1、c2为过程参数。通过上述方式,可以得到所述待转换点A1的三维坐标值A1(x,y,z),完成所述待转换点A1的二维坐标值到三维坐标值的转换。

请参阅图7,是本发明较佳实施例提供的一种坐标转换方法的流程图,应用于图1所示的全景地图坐标转换系统10中。所应说明的是,本发明提供的方法不以图7及以下所示的具体顺序为限制。下面将对图7所示的具体步骤进行详细描述。

步骤S101:将待转换的二维平面图中待转换点的像素坐标映射到全景球面上,生成全景场景。

本实施例中,步骤S101可以由图2中的全景场景生成模块110执行。所述二维平面图根据采集到的图片数据以生成。

可选地,请参阅图8,步骤S101可以包括步骤S1011和步骤S1013两个子步骤。

步骤S1011:在所述二维平面图上标识出采集所述图片数据的拍摄点的像素坐标以及所述待转换点的像素坐标。

本实施例中,步骤S1011可以由图2中的标识子模块111执行。

步骤S1013:将所述待转换点的像素坐标映射到全景球面上,生成全景场景,所述全景球面的中心点为所述拍摄点。

本实施例中,步骤S1011可以由图2中的映射子模块113执行。

步骤S103:将所述全景场景的三维坐标系转换为角度坐标系。

本实施例中,步骤S103可以由图2中的坐标系转换模块130执行。

步骤S105:根据所述待转换点与所述全景球面的中心点之间的经纬度相对关系计算出所述待转换点与所述全景球面的中心点之间的相对角度关系。

本实施例中,步骤S105可以由图2中的角度转换模块150执行。

可选地,请参阅图9,步骤S105可以包括步骤S1051和步骤S1053两个子步骤。

步骤S1051:获取所述全景球面的中心点的经纬度和高度。

在本实施例中,步骤S1051可以由图2中的获取子模块151执行。

步骤S1053:根据所述全景球面的中心点的经纬度和高度及所述待转换点的经纬度和高度计算出所述待转换点与所述全景球面的中心点之间的相对角度关系。

在本实施例中,步骤S1053可以由图2中的角度计算子模块153执行。

可选地,请参阅图10,步骤S1053可以包括步骤S10531、步骤S10533和步骤S10535三个子步骤。

步骤S10531:根据所述待转换点的经纬度和高度以及所述全景球面的中心点的经纬度和高度,计算出所述待转换点与所述全景球面的中心点之间的距离。

在本实施例中,步骤S10531可以由图5中的距离计算子模块1531执行。

步骤S10533:根据所述待转换点与所述全景球面的中心点之间的距离计算出所述待转换点与所述全景球面的中心点之间的经度差、纬度差和高度差;

在本实施例中,步骤S10533可以由图5中的差值计算子模块1533执行。

步骤S10535:根据所述经度差、纬度差和高度差计算出所述待转换点与所述全景球面的中心点之间的相对垂直角度值和水平角度值。

在本实施例中,步骤S10535可以由图5中的相对角度计算子模块1535执行。

步骤S107:根据所述待转换点与所述全景球面的中心点之间的相对角度关系以及所述角度坐标系到所述三维坐标系的逆转换关系,生成所述待转换点的三维坐标值。

在本实施例中,步骤S107可以由图2中的三维坐标转换模块170执行。

可选地,请参阅图11,步骤S107可以包括步骤S1071和步骤S1073两个子步骤。

步骤S1071:根据所述三维坐标系到所述角度坐标系之间的坐标系转换关系得到所述角度坐标系到所述三维坐标系的逆转换关系。

在本实施例中,步骤S1071可以由图2中的坐标系逆转换子模块171执行。

步骤S1073:根据计算出的所述待转换点与所述全景球面的中心点之间的相对垂直角度值、水平角度值以及所述逆转换关系生成所述待转换点的三维坐标值。

在本实施例中,步骤S1073可以由图2中的三维坐标生成子模块173执行。

本发明提供的坐标转换方法及装置,该方法通过将待转换的二维平面图中待转换点的像素坐标映射到全景球面上,生成全景场景。根据待转换点与全景球面的中心点之间的经纬度相对关系计算出待转换点与全景球面的中心点之间的相对角度关系。最后根据待转换点与全景球面的中心点之间的相对角度关系以及角度坐标系到三维坐标系的逆转换关系,生成待转换点的三维坐标值,完成待转换点的二维坐标到三维坐标的转换。通过上述方法,利用经纬度及高度将空间中的任意一点映射到角度坐标系中,再将其角度坐标映射到三维坐标系中,进一步地标识出待转换点在全景场景中的三维坐标,实现全景地图与二维地图之间的强关联,最终实现二维坐标到三维坐标之间的转换。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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