发明名称 一种基于激光点云与全景影像的交互式测图方法
摘要 本发明公开了一种基于激光点云与全景图像的交互式测图方法,它包括正向交互或/和反向交互测图步骤,正向交互步骤是从全景图像像素坐标定位到激光点坐标;反向交互步骤是从激光点坐标定位到全景图像像素坐标。本发明在正向交互时,从全景图像中确认测图对象,具有直观、清晰、明确的特点。在反向交互时,利用缓冲方法交互获得指定激光点,利用坐标转换参数转为空间直角坐标,并利用空间检校参数、全景点GPS坐标和空间姿态信息计算全景图像像素坐标,从而在全景图中显示激光点对应的方位。
申请公布号 CN106441242A 申请公布日期 2017.02.22
申请号 CN201610740228.3 申请日期 2016.08.27
申请人 青岛秀山移动测量有限公司 发明人 刘如飞;卢秀山;田茂义;曲杰卿;侯海龙;俞家勇
分类号 G01C11/04(2006.01)I 主分类号 G01C11/04(2006.01)I
代理机构 代理人
主权项 一种基于激光点云与全景图像的交互式测图方法,其特征在于,它包括正向交互或/和反向交互测图步骤,正向交互步骤是从全景图像像素坐标定位到激光点坐标;反向交互步骤是从激光点坐标定位到全景图像像素坐标;其中:所述的正向交互步骤是:第一步、首先利用全景图像空间姿态信息以及坐标转换参数,将图像像素坐标转为三维地方坐标p<sub>1</sub>;同时计算该全景拍摄点的三维地方坐标o<sub>1</sub>;具体为:第1.1步:获取全景图像的像素坐标,建立图像像素坐标与空间直角坐标的转换关系:第1.1.1步:将全景像素坐标P<sub>r</sub>(X,Y)转换为像空间坐标P<sub>r</sub>′(X,Y,0),其中P<sub>r</sub>(X,Y)坐标系为以全景图像左下角为原点的笛卡尔直角坐标系;0&lt;X&lt;w,w为全景图像的横向像素数;0&lt;Y&lt;h,h为全景图像的纵向像素数;第1.1.2步:将像空间坐标P<sub>r</sub>′(X,Y,0)转换为全景球空间坐标P<sub>sp</sub>(X<sub>sp</sub>,Y<sub>sp</sub>,Z<sub>sp</sub>)定义全景球空间坐标系,以球心为原点,设该球半径为R,建立像空间坐标系与全景球空间坐标系的转换关系,转换公式为:ψ=X/R;θ=Y/R;X<sub>sp</sub>=R*sin(θ)*cos(ψ);Y<sub>sp</sub>=R*sin(θ)*sin(ψ);Z<sub>sp</sub>=R*cos(θ);由上述转换公式将像空间坐标P<sub>r</sub>′(X,Y,0)转换为全景球空间坐标P<sub>sp</sub>(X<sub>sp</sub>,Y<sub>sp</sub>,Z<sub>sp</sub>);第1.1.3步:将全景球空间坐标P<sub>sp</sub>(X<sub>sp</sub>,Y<sub>sp</sub>,Z<sub>sp</sub>)转换为组合导航系统坐标获取全景相机与组合导航系统的空间检校参数,取逆时针方向为正,设X、Y、Z轴对应的旋转矩阵为R<sub>Z</sub>,R<sub>X</sub>,R<sub>Y</sub>,球在物方坐标系下的6个外方位元素为<img file="FDA0001095186600000021.GIF" wi="74" he="45" />ω、κ、ΔX、ΔY、ΔZ,其中ΔX、ΔY、ΔZ分别表示X、Y、Z轴的三个偏移量,<img file="FDA0001095186600000022.GIF" wi="70" he="45" />ω、κ分别表示绕Z、X、Y轴的三个旋转角;则全景球空间坐标与组合导航系统坐标的转换关系为:<maths num="0001"><math><![CDATA[<mrow><msub><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>X</mi></mtd></mtr><mtr><mtd><mi>Y</mi></mtd></mtr><mtr><mtd><mi>Z</mi></mtd></mtr></mtable></mfenced><mrow><mi>i</mi><mi>m</mi><mi>u</mi></mrow></msub><mo>=</mo><msub><mi>R</mi><mi>Z</mi></msub><msub><mi>R</mi><mi>X</mi></msub><msub><mi>R</mi><mi>Y</mi></msub><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi></mtd></mtr><mtr><mtd><mi>y</mi></mtd></mtr><mtr><mtd><mi>z</mi></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>&Delta;</mi><mi>X</mi></mrow></mtd></mtr><mtr><mtd><mrow><mi>&Delta;</mi><mi>Y</mi></mrow></mtd></mtr><mtr><mtd><mrow><mi>&Delta;</mi><mi>Z</mi></mrow></mtd></mtr></mtable></mfenced><mo>=</mo><msub><mi>R</mi><mn>1</mn></msub><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>X</mi><mrow><mi>s</mi><mi>p</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>Y</mi><mrow><mi>s</mi><mi>p</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>Z</mi><mrow><mi>s</mi><mi>p</mi></mrow></msub></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>&Delta;</mi><mi>X</mi></mrow></mtd></mtr><mtr><mtd><mrow><mi>&Delta;</mi><mi>Y</mi></mrow></mtd></mtr><mtr><mtd><mrow><mi>&Delta;</mi><mi>Z</mi></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><msub><mi>R</mi><mn>1</mn></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>a</mi><mn>1</mn></msub></mtd><mtd><msub><mi>a</mi><mn>2</mn></msub></mtd><mtd><msub><mi>a</mi><mn>3</mn></msub></mtd></mtr><mtr><mtd><msub><mi>b</mi><mn>1</mn></msub></mtd><mtd><msub><mi>b</mi><mn>2</mn></msub></mtd><mtd><msub><mi>b</mi><mn>3</mn></msub></mtd></mtr><mtr><mtd><msub><mi>c</mi><mn>1</mn></msub></mtd><mtd><msub><mi>c</mi><mn>2</mn></msub></mtd><mtd><msub><mi>c</mi><mn>3</mn></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0001095186600000023.GIF" wi="1438" he="239" /></maths>其中,<img file="FDA0001095186600000024.GIF" wi="877" he="749" />通过上述转换关系将全景球空间坐标P<sub>sp</sub>(X<sub>sp</sub>,Y<sub>sp</sub>,Z<sub>sp</sub>)转换为组合导航系统坐标P<sub>imu</sub>(X<sub>imu</sub>,Y<sub>imu</sub>,Z<sub>imu</sub>);第1.1.4步:将组合导航系统坐标P<sub>imu</sub>(X<sub>imu</sub>,Y<sub>imu</sub>,Z<sub>imu</sub>)转换为空间直角坐标获取IMU测量的当前全景的惯导信息,包括全景拍摄时的空间姿态角侧滚角R、俯仰角P、偏航角H和拍摄点空间直角坐标下的经度L、纬度B;其中R代表惯导x轴与水平方向之间的夹角,P代表惯导y轴与水平方向之间的夹角,H代表惯导前进方向与正北方向之间的夹角;则设R、P、H分别为r、p、y,绕z轴旋转y;再绕x轴旋转p;最后绕y轴旋转r;则有:<maths num="0002"><math><![CDATA[<mrow><msub><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>X</mi></mtd></mtr><mtr><mtd><mi>Y</mi></mtd></mtr><mtr><mtd><mi>Z</mi></mtd></mtr></mtable></mfenced><mi>l</mi></msub><mo>=</mo><msubsup><mi>R</mi><mi>b</mi><mi>l</mi></msubsup><msub><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>X</mi></mtd></mtr><mtr><mtd><mi>Y</mi></mtd></mtr><mtr><mtd><mi>Z</mi></mtd></mtr></mtable></mfenced><mrow><mi>i</mi><mi>m</mi><mi>u</mi></mrow></msub></mrow>]]></math><img file="FDA0001095186600000031.GIF" wi="421" he="230" /></maths>其中<img file="FDA0001095186600000032.GIF" wi="1185" he="79" /><img file="FDA0001095186600000033.GIF" wi="1526" he="454" />设该点在普通地表坐标系下的坐标为[X Y Z]<sub>e</sub><sup>T</sup>(在惯导信息中记录着该值);先绕x轴旋转<img file="FDA0001095186600000034.GIF" wi="179" he="118" />再绕z轴旋转<img file="FDA0001095186600000035.GIF" wi="179" he="116" />则有:<maths num="0003"><math><![CDATA[<mrow><msub><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>X</mi></mtd></mtr><mtr><mtd><mi>Y</mi></mtd></mtr><mtr><mtd><mi>Z</mi></mtd></mtr></mtable></mfenced><mi>e</mi></msub><mo>=</mo><msubsup><mi>R</mi><mi>l</mi><mi>e</mi></msubsup><msub><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>X</mi></mtd></mtr><mtr><mtd><mi>Y</mi></mtd></mtr><mtr><mtd><mi>Z</mi></mtd></mtr></mtable></mfenced><mi>l</mi></msub><mo>+</mo><msub><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>X</mi></mtd></mtr><mtr><mtd><mi>Y</mi></mtd></mtr><mtr><mtd><mi>Z</mi></mtd></mtr></mtable></mfenced><mrow><mi>o</mi><mi>e</mi></mrow></msub></mrow>]]></math><img file="FDA0001095186600000036.GIF" wi="510" he="223" /></maths>其中:<maths num="0004"><math><![CDATA[<mfenced open = "" close = ""><mtable><mtr><mtd><mrow><msubsup><mi>R</mi><mi>l</mi><mi>e</mi></msubsup><mo>=</mo><msub><mi>R</mi><mi>Z</mi></msub><mrow><mo>(</mo><mrow><mo>-</mo><mfrac><mi>&pi;</mi><mn>2</mn></mfrac><mo>-</mo><mi>L</mi></mrow><mo>)</mo></mrow><msub><mi>R</mi><mi>X</mi></msub><mrow><mo>(</mo><mrow><mo>-</mo><mfrac><mi>&pi;</mi><mn>2</mn></mfrac><mo>+</mo><mi>B</mi></mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>cos</mi><mrow><mo>(</mo><mrow><mfrac><mi>&pi;</mi><mn>2</mn></mfrac><mo>+</mo><mi>L</mi></mrow><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>-</mo><mi>sin</mi><mrow><mo>(</mo><mrow><mfrac><mi>&pi;</mi><mn>2</mn></mfrac><mo>+</mo><mi>L</mi></mrow><mo>)</mo></mrow></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mi>sin</mi><mrow><mo>(</mo><mrow><mfrac><mi>&pi;</mi><mn>2</mn></mfrac><mo>+</mo><mi>L</mi></mrow><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>cos</mi><mrow><mo>(</mo><mrow><mfrac><mi>&pi;</mi><mn>2</mn></mfrac><mo>+</mo><mi>L</mi></mrow><mo>)</mo></mrow></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>cos</mi><mrow><mo>(</mo><mrow><mfrac><mi>&pi;</mi><mn>2</mn></mfrac><mo>-</mo><mi>B</mi></mrow><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>-</mo><mi>sin</mi><mrow><mo>(</mo><mrow><mfrac><mi>&pi;</mi><mn>2</mn></mfrac><mo>-</mo><mi>B</mi></mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>sin</mi><mrow><mo>(</mo><mrow><mfrac><mi>&pi;</mi><mn>2</mn></mfrac><mo>-</mo><mi>B</mi></mrow><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>cos</mi><mrow><mo>(</mo><mrow><mfrac><mi>&pi;</mi><mn>2</mn></mfrac><mo>-</mo><mi>B</mi></mrow><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced></mrow></mtd></mtr><mtr><mtd><mrow><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>-</mo><mi>sin</mi><mi> </mi><mi>L</mi></mrow></mtd><mtd><mrow><mo>-</mo><mi>sin</mi><mi> </mi><mi>B</mi><mi> </mi><mi>cos</mi><mi> </mi><mi>L</mi></mrow></mtd><mtd><mrow><mi>cos</mi><mi> </mi><mi>B</mi><mi> </mi><mi>cos</mi><mi> </mi><mi>L</mi></mrow></mtd></mtr><mtr><mtd><mrow><mi>cos</mi><mi> </mi><mi>L</mi></mrow></mtd><mtd><mrow><mo>-</mo><mi>sin</mi><mi> </mi><mi>B</mi><mi> </mi><mi>sin</mi><mi> </mi><mi>L</mi></mrow></mtd><mtd><mrow><mi>cos</mi><mi> </mi><mi>B</mi><mi> </mi><mi>sin</mi><mi> </mi><mi>L</mi></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>cos</mi><mi> </mi><mi>B</mi></mrow></mtd><mtd><mrow><mi>sin</mi><mi> </mi><mi>B</mi></mrow></mtd></mtr></mtable></mfenced></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0001095186600000037.GIF" wi="1142" he="662" /></maths><maths num="0005"><math><![CDATA[<mrow><msub><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>X</mi></mtd></mtr><mtr><mtd><mi>Y</mi></mtd></mtr><mtr><mtd><mi>Z</mi></mtd></mtr></mtable></mfenced><mrow><mi>o</mi><mi>e</mi></mrow></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>(</mo><mi>N</mi><mo>+</mo><mi>h</mi><mo>)</mo><mi>cos</mi><mi> </mi><mi>B</mi><mi> </mi><mi>cos</mi><mi> </mi><mi>L</mi></mrow></mtd></mtr><mtr><mtd><mrow><mo>(</mo><mi>N</mi><mo>+</mo><mi>h</mi><mo>)</mo><mi>cos</mi><mi> </mi><mi>B</mi><mi> </mi><mi>sin</mi><mi> </mi><mi>L</mi></mrow></mtd></mtr><mtr><mtd><mrow><mo>(</mo><mfrac><msup><mi>b</mi><mn>2</mn></msup><msup><mi>a</mi><mn>2</mn></msup></mfrac><mi>N</mi><mo>+</mo><mi>h</mi><mo>)</mo><mi>sin</mi><mi> </mi><mi>B</mi></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001095186600000041.GIF" wi="550" he="335" /></maths>其中,<img file="FDA0001095186600000042.GIF" wi="789" he="158" />a为WGS84椭球参数的长半轴(6378137米);b为WGS84椭球参数的短半轴(6356752.314米);<maths num="0006"><math><![CDATA[<mrow><msub><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>X</mi></mtd></mtr><mtr><mtd><mi>Y</mi></mtd></mtr><mtr><mtd><mi>Z</mi></mtd></mtr></mtable></mfenced><mrow><mi>o</mi><mi>e</mi></mrow></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mrow><mo>(</mo><mrow><mi>N</mi><mo>+</mo><mi>h</mi></mrow><mo>)</mo></mrow><mi>cos</mi><mi> </mi><mi>B</mi><mi> </mi><mi>cos</mi><mi> </mi><mi>L</mi></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mo>(</mo><mrow><mi>N</mi><mo>+</mo><mi>h</mi></mrow><mo>)</mo></mrow><mi>cos</mi><mi> </mi><mi>B</mi><mi> </mi><mi>sin</mi><mi> </mi><mi>L</mi></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mo>(</mo><mrow><mfrac><msup><mi>b</mi><mn>2</mn></msup><msup><mi>a</mi><mn>2</mn></msup></mfrac><mi>N</mi><mo>+</mo><mi>h</mi></mrow><mo>)</mo></mrow><mi>sin</mi><mi> </mi><mi>B</mi></mrow></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mrow><mo>(</mo><mrow><mfrac><mi>a</mi><msqrt><mrow><mn>1</mn><mo>-</mo><msup><mi>e</mi><mn>2</mn></msup><msup><mi>sin</mi><mn>2</mn></msup><mi>B</mi></mrow></msqrt></mfrac><mo>+</mo><mi>h</mi></mrow><mo>)</mo></mrow><mi>cos</mi><mi> </mi><mi>B</mi><mi> </mi><mi>cos</mi><mi> </mi><mi>L</mi></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mo>(</mo><mrow><mfrac><mi>a</mi><msqrt><mrow><mn>1</mn><mo>-</mo><msup><mi>e</mi><mn>2</mn></msup><msup><mi>sin</mi><mn>2</mn></msup><mi>B</mi></mrow></msqrt></mfrac><mo>+</mo><mi>h</mi></mrow><mo>)</mo></mrow><mi>cos</mi><mi> </mi><mi>B</mi><mi> </mi><mi>sin</mi><mi> </mi><mi>L</mi></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mo>(</mo><mrow><mfrac><msup><mi>b</mi><mn>2</mn></msup><msup><mi>a</mi><mn>2</mn></msup></mfrac><mfrac><mi>a</mi><msqrt><mrow><mn>1</mn><mo>-</mo><msup><mi>e</mi><mn>2</mn></msup><msup><mi>sin</mi><mn>2</mn></msup><mi>B</mi></mrow></msqrt></mfrac><mo>+</mo><mi>h</mi></mrow><mo>)</mo></mrow><mi>sin</mi><mi> </mi><mi>B</mi></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001095186600000043.GIF" wi="1222" he="447" /></maths>则<img file="FDA0001095186600000044.GIF" wi="267" he="79" />为转换得到的空间直角坐标;第1.1.5步:最后,利用坐标转换参数,将空间直角坐标转换为三维地方坐标;第1.2步:获取当前全景图像的宽度为w,高度为h,w、h单位为像素,则全景中心点的像素坐标为(w/2,h/2),按照1.1.1—1.1.4步骤中描述的全景图像像素坐标转空间直角坐标的处理过程,先将全景图像像素坐标转为空间直角坐标,再根据1.1.5步骤利用坐标转换参数转为三维地方坐标o<sub>1</sub>;第二步、由o<sub>1</sub>、p<sub>1</sub>构建空间三维直线线段l′,并基于该线段计算平面投影缓冲区;获取该缓冲范围内的激光点集PC;具体为:第2.1步:利用两三维空间点o<sub>1</sub>(Xo<sub>1</sub>,Yo<sub>1</sub>,Zo<sub>1</sub>)与p<sub>1</sub>(Xp<sub>1</sub>,Yp<sub>1</sub>,Zp<sub>1</sub>),构造空间直线l;以向量模式进行处理,以o<sub>1</sub>为向量的初始点,p<sub>1</sub>为指向点,因此计算其单位方向向量v为:<img file="FDA0001095186600000045.GIF" wi="718" he="127" />其中Lo<sub>1</sub>p<sub>1</sub>为o<sub>1</sub>与p<sub>1</sub>的三维空间距离;第2.2步:基于l的向量的Z分量,按照不同情况计算,获取指定线段;对于l上的一点P′:如果有Zp<sub>1</sub>≥Zo<sub>1</sub>,则:P′=(Xo<sub>1</sub>+v[0]*L<sub>v</sub>,Yo<sub>1</sub>+v[1]*L<sub>v</sub>,Zo<sub>1</sub>+v[2]*L<sub>v</sub>)其中L<sub>v</sub>为最大搜索长度;如果有Zp<sub>1</sub>&lt;Zo<sub>1</sub>,则:首先计算全景拍摄点的地面高程:Z<sub>g</sub>=Zo<sub>1</sub>‑H<sub>c</sub>,其中H<sub>c</sub>为设备的相机高度;设平面P<sub>g</sub>为经过(0,0,Z<sub>g</sub>)点的水平面,则P′为l与P<sub>g</sub>的交点;进一步计算当前P′与o<sub>1</sub>的空间距离L<sub>P′O1</sub>,如果L<sub>P′O1</sub>&gt;L<sub>v</sub>,则P′=(Xo<sub>1</sub>+v[0]*L<sub>v</sub>,Yo<sub>1</sub>+v[1]*L<sub>v</sub>,Zo<sub>1</sub>+v[2]*L<sub>v</sub>)由o<sub>1</sub>与P′作为两个顶点构成线段l′;第2.3步:将三维线段l′进行投影处理,得到二维平面线段l″;获得经过l″的一个端点且垂直于l″的线段l<sub>v1</sub>,其长度为d*4,d为激光点云数据的抽稀间距,且被该端点平分;使用同样的方法获得经过l″的另一个端点的垂线段l<sub>v2</sub>;由l<sub>v1</sub>与l<sub>v2</sub>四个端点形成的矩形,作为线段的平面投影缓冲区;第2.4步:基于矩形缓冲区,利用空间查询方法,获取该平面范围内的激光点集合PC;第三步、遍历激光点集中的点,获取距l′的距离小于阈值的备选点集合;进一步筛选出该集合中距离全景拍摄点最近的点,以该点的坐标作为全景图像像素坐标对应的激光点坐标;具体为:第3.1步:遍历激光点集合PC中的每个点pcp(X<sub>pcp</sub>,Y<sub>pcp</sub>,Z<sub>pcp</sub>),计算其到直线l的空间直线距离L<sub>pcp</sub>;如果L<sub>pcp</sub>&lt;L<sub>n</sub>则将该点云点放入备选点集合PC′;其中L<sub>n</sub>为点云点到l的距离阈值,L<sub>n</sub>=d*2,d为点云数据的抽稀间距;第3.2步:遍历点云点集合PC′中的每个点pcp′,计算其到o<sub>1</sub>的空间直线距离,则与o<sub>1</sub>距离最近的点为最终所求点,其坐标即为测图坐标;所述的反向交互步骤如下:第一步、首先交互获取激光点三维地方坐标和时间属性,然后根据时间属性值确定对应的全景图像及其空间姿态信息;具体为:第1.1步:交互获取地方二维坐标p<sub>l</sub>,创建以该点为中心且边长为d*4的正方形缓冲区,基于该缓冲区进行激光点云的空间查询,获得该范围内的激光点集合C;其中d为激光点云数据的抽稀间距;第1.2步:遍历该集合中的每个点云点P<sub>i</sub>(1&lt;i&lt;N),分别计算其与p<sub>l</sub>的平面直线距离,获得距离值最小的激光点P。读取P点包含的时间信息,从惯导信息文件中获取包含该时间的全景图像及其信息,信息包括全景拍摄点GPS坐标以及空间姿态信息;第二步、利用坐标转换参数将激光点三维地方坐标转为空间直角坐标;第三步、利用全景的GPS坐标全景图像及空间姿态信息,将空间直角坐标转为全景像素坐标,该坐标即为激光点坐标对应的图像像素坐标;具体为:第3.1步:将空间直角坐标转为组合导航系统坐标利用当前全景对应的惯导数据中的侧滚角R、俯仰角P、偏航角H以及拍摄点空间直角坐标下的经度L和纬度B,结合普通地表坐标系统,基于矩阵运算,根据技术方案正向交互步骤的1.1.4步的计算公式进行逆运算,将空间直角坐标转为组合导航系统坐标;第3.2步:将组合导航系统坐标转为全景球空间坐标利用组合导航系统的空间检校参数ΔX、ΔY、ΔZ、<img file="FDA0001095186600000071.GIF" wi="76" he="47" />ω、κ六个参数,基于步骤1.1.3中矩阵的逆运算,构建组合导航系统与全景球空间坐标系统的转换关系,将组合导航系统坐标转为全景球空间坐标;第3.3步:将全景球空间坐标转为全景图像像素坐标设全景球空间坐标的半径为R,全景球空间坐标为(X<sub>sp</sub>,Y<sub>sp</sub>,Z<sub>sp</sub>),则如果X<sub>sp</sub>&gt;0,有Lon=π+arccos(Y<sub>sp</sub>/R)如果X<sub>sp</sub>≤0,有Lon=π‑arccos(Y<sub>sp</sub>/R)Lat=arcsin(Z<sub>sp</sub>/R)再将(Lon,Lat)转为(X,Y):X=Lon/(π*2)Y=(lat+π/2)/π(X*w,Y*h)即全景图像像素坐标,其中w为全景图像宽度即横向像素数,h为全景图像高度即纵向像素数。
地址 266590 山东省青岛市经济技术开发区前湾港路579号山东科技大学科技园