概述
在实际的3D成像中,由于投影仪和摄像机的位置必然不同,这会使得打在被测物上的条纹宽度与投影仪投出来的条纹宽度不同,从而导致测量深度与实际深度不符。(例如当我们要测量x轴所在与纸面垂直平面的深度时,测量出的结果是一个斜面)。
而最小相位图就是联系测量深度与实际深度的一个量,具体关系为。
由于这种绝对误差的存在会导致3D成像过程中的图片质量下降,所以在生成精密的3D图片过程中,解决这一误差至关重要。
由于并不是一个常量,而是一个随着位置不同而不同的量,为了求出
,我们可以令
(或为一个常数A),这样可以得到
。由于
是一个理想的值,当条纹宽度、摄像机和投影仪的相对位置以及它们的焦距都确定时,
是一个不变的量。所以
的求解需要根据标定的结果。
通过标定我们可以获得投影仪和摄像机三维转化为二维的转化矩阵和
以及对应的图像失真系数
。设:三维坐标:
,对应二维坐标为
空间三维坐标转化成像素二维坐标
通过针孔模型,我们可以获得计算关系:
得到三维转化为二维的关系:
通过推导针孔模型的公式,我们可以看出三维转化为二维容易,但是二维转化为三维则极其复杂。所以推导过程中只能使用三维转化为二维这一个关系。
最小相位图
推导流程:
第一步就是构建一个三维的平面,此处以摄像机坐标系作为世界坐标系,通过摄像机的标定矩阵
与数据
将这一平面转化为一个二维的量
,此时我们可以得到非常多X
与
一一对应的点。
结合摄像机的像素(例如像素为492×656),构建一个492×656的矩阵,矩阵的值为它们的坐标点,取
中与
最靠近的点(整数点),并记录下来,此时我们就得到了摄像机所有像素点
所对应的三维坐标中的点
(实现二维转化到三维)。
之后将得到的三维点矩阵,用投影仪的标定矩阵
与数据
计算,可以得到一个二维矩阵
。我们就获得了摄像机像素点
与投影仪像素点
的一一对应。
再在获得的上进行生成对应的条纹图(以四步相移为例),对这四张条纹图用四步相移求解相位并解包裹,就可以获得我们所要求的最小相位图
(由于有时间,我又写了一个解释,跟上面是一样的,没看懂的可以看一下)
步骤1:构建一个精密度高三维平面①。
步骤2:通过相机矩阵,将这一三维平面转化为二维平面②
步骤3:构建一个与所用CCD像素一致的二维平面,每个像素点的坐标都为整数,将这一二维平面
与②进行比较。
步骤4:将②中与最近的点保留下来④,并记录这些的位置⑤。
步骤5:将⑤位置所对应的三维点保留下来,并用这些点构建一个三维平面⑥。
步骤6:对平面⑥,应用投影仪矩阵,从而求出了投影仪的二维平面⑦。从完成了⑦的像素点与CCD的像素点
的一一对应。
步骤7:再利用⑦中获得的二维平面,生成条纹图
即:————————①
与所用投影仪条纹一致,与投影仪条纹宽度有关。
与所用的多步相移有关,这里我们使用四步相移,所以
=0、Π/2、Π、3Π/2,带入①分别得到
、
、
、
。
所以利用四步相移的公式:求出相位值。
利用枝切法解包裹后就可获得。
讨论:我们可以看出求解后的准确程度与构建的三维平面①的精密程度有关,若①平面上点之间距离越近,转化后,所被记录的②平面上的点与CCD的点就约接近,从而求出的
就越准确。