主权项 |
1.一种基于彩色深度融合的虚拟阵列合成孔径透视成像方法,其特征在于包括以下步骤:步骤一、采用Kinect获取彩色图像和深度图片,然后利用Kinect SDK for Windows+OpenNI2+OpenCV将获取的图片信息、深度信息及RGB信息保存;将OpenNI的图像数据格式转换为OpenCV的数据格式相同;对于彩色图像,先将数据塞入OpenCV三通道RGB对象,再转换到BGR进行保存;对于深度图像,先放入单通道对象,最后将深度值等比例缩小到[0,255]的值域中,作为灰度图进行保存;步骤二、使用PTAM系统做相机标定,对于相机内参的求解,首先使用人手持标定板,用相机拍摄各个角度的图片,然后使用PTAM的CameraCalibrator子模块对相机内参进行求解;对于相机外参的求解,进行一步累加计算:假如以第一帧为参考帧,第二帧相对于第一帧的相机外参由PTAM求出,假设分别是平移向量T<sub>1</sub>,旋转矩阵为R<sub>1</sub>;需要将旋转矩阵分解为绕x轴,y轴,z轴旋转的三个角度ψ<sub>1</sub>,<img file="FDA00003591237100011.GIF" wi="72" he="64" />θ<sub>1</sub>;计算公式如下:<maths num="0001"><![CDATA[<math><mrow><msub><mi>R</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>ψ</mi><mo>)</mo></mrow><mo>=</mo><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><mi>cos</mi><mi>ψ</mi></mtd><mtd><mi>sin</mi><mi>ψ</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mi>sin</mi><mi>ψ</mi></mtd><mtd><mi>cos</mi><mi>ψ</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths><img file="FDA00003591237100013.GIF" wi="1042" he="238" /><maths num="0002"><![CDATA[<math><mrow><msub><mi>R</mi><mi>z</mi></msub><mrow><mo>(</mo><mi>θ</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>cos</mi><mi>θ</mi></mtd><mtd><mi>sin</mi><mi>θ</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>-</mo><mi>sin</mi><mi>θ</mi></mtd><mtd><mi>cos</mi><mi>θ</mi></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><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></math>]]></maths><img file="FDA00003591237100015.GIF" wi="990" he="104" />第三帧相对于第二帧的相机外参由PTAM求出,假设分别是平移向量T<sub>2</sub>,旋转矩阵为R<sub>2</sub>;旋转矩阵分解出的三个角度分别是ψ<sub>2</sub>,<img file="FDA00003591237100016.GIF" wi="70" he="60" />θ<sub>2</sub>,第三帧相对于第一帧的平移向量是T=T<sub>1</sub>+T<sub>2</sub>,三个旋转角度是:<img file="FDA00003591237100017.GIF" wi="884" he="237" />再根据(4)式求解出第三帧相对于第一帧的旋转矩阵,以后每一帧相对于参考帧的相机外参都这样求解;步骤三、假设一组含有遮挡物的图片序列中有n个不同的视角,分别是V<sub>1</sub>,V<sub>2</sub>,…,V<sub>n</sub>,选取其中的一个视角作为参考视角V<sub>ref</sub>;使用∏<sub>i</sub>表示不同视角的成像平面;假设∏<sub>des</sub>是想要获取的聚焦平面,点p<sub>des</sub>表示∏<sub>des</sub>上的一个二维点,在参考视角坐标系下对应的三维空间点p<sub>ref</sub>为:p<sub>ref</sub>=p<sub>des</sub>·size+o (6)其中,size表示在参考相机坐标系下∏<sub>des</sub>中一个像素的大小,o表示∏<sub>des</sub>在参考相机坐标系下的起始点;size由以下公式求取:<maths num="0003"><![CDATA[<math><mrow><mi>size</mi><mo>=</mo><mfenced open='{' close='}'><mtable><mtr><mtd><mi>sizeX</mi></mtd></mtr><mtr><mtd><mi>sizeY</mi></mtd></mtr></mtable></mfenced><mo>=</mo><mo>±</mo><mn>0.5</mn><mo>·</mo><mo>(</mo><mfenced open='{' close='}'><mtable><mtr><mtd><mi>w</mi></mtd></mtr><mtr><mtd><mi>h</mi></mtd></mtr></mtable></mfenced><mo>/</mo><mfenced open='{' close='}'><mtable><mtr><mtd><msub><mi>f</mi><mi>x</mi></msub></mtd></mtr><mtr><mtd><msub><mi>f</mi><mi>y</mi></msub></mtd></mtr></mtable></mfenced><mo>)</mo><mo>·</mo><mi>depth</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,w和h分别表示合成图像的宽和高,f<sub>x</sub>和f<sub>y</sub>表示焦距,depth表示聚焦平面的深度;计算p<sub>ref</sub>在世界坐标系下的坐标;对p<sub>ref</sub>的世界坐标利用针孔相机模型,得到其在每一个视角的成像平面上的点p',具体计算如下:<maths num="0004"><![CDATA[<math><mrow><msub><mi>Z</mi><mi>c</mi></msub><mfenced open='[' close=']'><mtable><mtr><mtd><mi>x</mi></mtd></mtr><mtr><mtd><mi>y</mi></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mi>K</mi><mo>[</mo><mi>R</mi><mo>|</mo><mi>T</mi><mo>]</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>X</mi><mi>W</mi></msub></mtd></mtr><mtr><mtd><msub><mi>Y</mi><mi>W</mi></msub></mtd></mtr><mtr><mtd><msub><mi>Z</mi><mi>W</mi></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,K表示相机的内参,R和T表示当前帧的旋转矩阵和平移向量,(x,y)表示p'在成像平面上的坐标;步骤四、在获取图片时,已经获取了图片中每个像素的深度信息和RGB信息,并且根据深度信息对像素做了标记,对所有的有效投影点获取平均RGB值,将该平均值作为聚焦平面上点的颜色值,获取虚拟聚焦平面上所有点的颜色值,生成目标的合成图像。 |