发明名称 一种应用于三维全景图像中的鼠标快速探面的方法
摘要 本发明提供了一种应用于三维全景图像中的鼠标快速探面的方法,其主要步骤为首先利用计算机程序算得三维全景图像的深度图和法向量图,然后将鼠标放置于三维全景图像上的任一目标点,得到该目标点对应在法向量图中的法向量,以及目标点的三维坐标,最后根据目标点的三维坐标和法向量,即可绘制出此目标点所处的平面,实现鼠标快速探面。本发明提供的方法不需要任何人工编辑操作,大大节省了人力,提高了数据处理效率。同时在本发明中所提供的成果数据中,包含有任意一点所在的平面的法向量,因此再微小的面也可被探测到,相比现有技术中的只有大的平面才会被采集探测到,采用本方法进行鼠标探面的精度有了很大提高。
申请公布号 CN103020962B 申请公布日期 2015.07.22
申请号 CN201210490690.4 申请日期 2012.11.27
申请人 武汉海达数云技术有限公司 发明人 刘守军;姚立
分类号 G06T7/00(2006.01)I 主分类号 G06T7/00(2006.01)I
代理机构 武汉华旭知识产权事务所 42214 代理人 周宗贵;刘荣
主权项 一种应用于三维全景图像中的鼠标快速探面的方法,其特征在于包括以下步骤:(1)、将三维全景图像作为一个球体,三维全景图像的中心即摄影中心作为球心,根据经纬度将球体划分成网格,计算点云数据中的点所属的网格并将点云数据中的点距离球心的距离值做为所属网格的距离值,依此计算完所有点后得到球面的距离值矩阵,将该距离值矩阵中的数据与图像像素一一对应,转化成rgb值后保存至图像中,即得到三维全景图像的深度图;具体步骤为:将三维全景图像作为一个球体,三维全景图像的中心即摄影中心作为球心,球心坐标为(X0,Y0,Z0),根据经纬度将球体划分成网格,然后计算点云数据中的点(x,y,z)到球心(X0,Y0,Z0)的向量(Δx,Δy,Δz),计算公式为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfenced open='' close=''><mtable><mtr><mtd><mi>&Delta;x</mi><mo>=</mo><mi>x</mi><mo>-</mo><mi>X</mi><mn>0</mn></mtd></mtr><mtr><mtd><mi>&Delta;y</mi><mo>=</mo><mi>y</mi><mo>-</mo><mi>Y</mi><mn>0</mn></mtd></mtr><mtr><mtd><mi>&Delta;z</mi><mo>=</mo><mi>z</mi><mo>-</mo><mi>Z</mi><mn>0</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0000687909420000011.GIF" wi="293" he="190" /></maths>然后求出此向量的角度(θ,φ)及长度值d,长度值d为该点到球心的距离,计算公式为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mfenced open='' close=''><mtable><mtr><mtd><mi>&theta;</mi><mo>=</mo><mi>arctan</mi><mrow><mo>(</mo><mi>&Delta;y</mi><mo>/</mo><mi>&Delta;x</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>&phi;</mi><mo>=</mo><mi>arctan</mi><mrow><mo>(</mo><mi>&Delta;z</mi><mo>/</mo><msqrt><msup><mi>&Delta;x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>&Delta;y</mi><mn>2</mn></msup></msqrt><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>d</mi><mo>=</mo><msqrt><msup><mi>&Delta;x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>&Delta;y</mi><mn>2</mn></msup><mo>+</mo><msup><mi>&Delta;z</mi><mn>2</mn></msup></msqrt></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0000687909420000012.GIF" wi="675" he="248" /></maths>根据该向量的角度(θ,φ)计算此点所属的网格,并将长度值d做为此网格的距离值,计算完点云数据中的所有点后,得到整个球面的距离值矩阵,将该距离值矩阵中的数据与图像像素一一对应,并将长度值d转化为rgb值后,保存至图像中,即得到三维全景图像的深度图,其中长度值d转换为rgb的计算公式为:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>rgb</mi><mo>=</mo><mfrac><mrow><mi>d</mi><mo>-</mo><msub><mi>d</mi><mi>min</mi></msub></mrow><mrow><msub><mi>d</mi><mi>max</mi></msub><mo>-</mo><msub><mi>d</mi><mi>min</mi></msub></mrow></mfrac><mo>*</mo><msup><mn>2</mn><mn>24</mn></msup></mrow>]]></math><img file="FDA0000687909420000013.GIF" wi="568" he="153" /></maths>其中dmin和dmax分别为当前点云数据中所有点离球心的最小距离和最大距离;(2)、在上述根据经纬度将三维全景图像划分成的网格中,对于任一网格G,选取网格G及其周围的网格中的点,根据这些点拟合一个最佳的平面P,计算该平面P的法向量(nx,ny,nz),作为网格G的法向量值;依此计算出所有网格对应的法向量,从而得到法向量矩阵,将该法向量矩阵转换为rgb值矩阵后,存储为图片形式,即得到三维全景图像的法向量图;(3)、在对全景图像浏览时,球心做为观察点,将鼠标放置于三维全景图像上的任一目标点,可得到观察点与此目标点所在的射线,根据射线的角度值可得到该目标点对应于法向量图中的法向量,同时根据射线的角度值和深度图,可得到目标点的三维坐标,最后根据目标点的三维坐标和法向量,即可得到此点的平面,绘制此平面,从而实现鼠标快速探面。
地址 430023 湖北省武汉市东湖新技术开发区武汉大学科技园慧业楼7楼