背景技术:
在非接触三维测量技术中,光学三维测量技术是获取物体三维信息最有效的手段之一。目前视觉三维测量技术的重点发展方向包括结构光法、立体图像法、莫尔法、全息法、激光雷达法等。
近年来,结构光法三维信息测量技术取得了长足的进步,显示了其在分辨率及测量速度上的优势,已经成为三维测量领域中非常重要的研究方向之一。
用结构光法测量并重建空间曲面时,其重建精度主要受到条纹采样宽度的影响。理论上讲,结构光法中的使用的条纹,采样宽度映射到图像平面时,可以达到1个像素甚至是亚像素粗细。但实际上,如果条纹宽度取到1个像素或更低,用图像处理技术提取此条纹数据时误差极大,难以用于后续的曲面重建工作。所以,在实际应用中,条纹的采样宽度至少要取到4个像素左右。这就造成了采样数据横、纵分辨率不一致,一个方向上点云比较密集,而另一个方向上点云比较稀疏,进而造成重建出的曲面中含有大量的狭长三角形,与原曲面相比存在严重的失真。因此,对结构光条纹的采样数据进行加密势在必行,这就需要用到插值技术。
目前,常用的插值方法有最邻近插值法、双线性插值法和三次卷积插值法等等。其中,最邻近插值法原理简单、执行速度快,插值精度较低;三次卷积插值法实现复杂、执行速度慢,插值精度高;双线性插值法的执行速度介于二者之间,插值精度也高,在实际中有广泛的应用。
传统的双线性插值方法采用一个正方形模板,提取此正方形4个角点的像素作为插值基准数据,而生成的数据会出现在正方形中心位置。将此方法用于结构光条纹采样数据深度图像的插值,插值结果会出现在原图像两行像素之间,这会严重地改变原始数据的拓扑结构,进而影响到后续三维信息复原结果的逼真程度。
发明内容:
本发明的目的是提供一种结构光条纹采样数据深度图像的“双四导六”插值方法,此方法可以克服双线性插值方法的缺陷,在不改变原始数据拓扑结构的前提下,以更高的可信度完成插值。
上述的目的通过以下的技术方案实现:
一种结构光条纹采样数据深度图像的“双四导六”插值方法,该方法包括如下步骤:
A、选取一个矩形模板计算待插值像素上、下位置的辅助点,此矩形模板包含两行三列像素,受结构光条纹采样数据特征的影响,此模板的中间列像素为空白,计算上下位置辅助点时,以矩形的四个角点像素为插值基准点;
B、选取一个十字形模板计算待插值像素的最终插值结果,此十字形模板中上、下位置的像素为第一步计算得到的上、下位置辅助点,左、右位置的像素为待插值像素水平方向上左、右位置的像素;
C、根据两次插值的位置结构信息,推导出一种“双四导六”数学计算模型,简化最终插值的计算。
所述的结构光条纹采样数据深度图像的“双四导六”插值方法,步骤B中所述的在深度图像的上下边缘位置插值时,上位置或下位置辅助点无法计算,插值方法将采用退化后的形式进行计算。
所述的结构光条纹采样数据深度图像的“双四导六”插值方法,步骤C中所述的“双四导六”数学计算模型为上位置辅助点的计算用待插值点邻域中上位置共4个像素,下位置辅助点的计算用待插值点邻域中下位置共4个像素,一共用到两次4像素插值,两次插值中,待插值点邻域中间位置的2个像素被重复使用,这样可以根据各像素的位置结构信息,把最终插值的计算简化为待插值点邻域上中下6个像素的加权结果。
本发明的有益效果:
1.本发明方法,用上、下位置辅助点增强最终插值结果的可信度。
2.本发明方法,用十字形模板进行最终插值的计算,生成的插值结果仍然在原像素行的空缺位置,不会改变原始数据的拓扑结构。
3.本发明方法,用“双四导六”数学计算模型,大大增强了本方法在实际中的应用效果。
4.本发明方法,充分考虑了在图像边缘处进行插值时的退化情况,使整个方法具有更高的鲁棒性。
具体实施方式:
实施例1:
结构光条纹采样数据深度图像的“双四导六”插值方法,该方法包括如下步骤:
A、选取一个矩形模板计算待插值像素上、下位置的辅助点,此矩形模板包含两行三列像素,受结构光条纹采样数据特征的影响,此模板的中间列像素为空白,计算上下位置辅助点时,以矩形的四个角点像素为插值基准点;
B、选取一个十字形模板计算待插值像素的最终插值结果,此十字形模板中上、下位置的像素为第一步计算得到的上、下位置辅助点,左、右位置的像素为待插值像素水平方向上左、右位置的像素;
C、根据两次插值的位置结构信息,推导出一种“双四导六”数学计算模型,简化最终插值的计算。
步骤B中所述的在深度图像的上下边缘位置插值时,上位置或下位置辅助点无法计算,插值方法将采用退化后的形式进行计算。
步骤C中所述的“双四导六”数学计算模型为上位置辅助点的计算用待插值点邻域中上位置共4个像素,下位置辅助点的计算用待插值点邻域中下位置共4个像素,一共用到两次4像素插值,两次插值中,待插值点邻域中间位置的2个像素被重复使用,这样可以根据各像素的位置结构信息,把最终插值的计算简化为待插值点邻域上中下6个像素的加权结果。
设定结构光条纹采样宽度为5个像素,采样时取条纹边缘和中心线作为采样数据,这样映射成最终的深度图像时,x方向会隔列损失1个像素宽度的数据,这也是可能损失最小的情况了。以这样的图像作为初始输入,按照本方法进行插值。
插值前,取一个待插值点及其周围邻域的8个像素点,如图1所示。其中,☆符号即为要插值的位置,此位置所在列为采样数据缺失列,因此其上下位置均无实际像素值;A1、B1为待插值点邻域上方的像素,A2、B2为待插值点邻域中间的像素,A3、B3为待插值点邻域下方的像素。
第一步,选取矩形模板计算待插值像素上、下位置的辅助点,此矩形模板包含两行三列像素,如图2所示。图中,C1、C2为上、下位置的辅助点,用●符号表示。从图中可以看出,经此步操作,辅助点生成在像素行间。此步骤的计算公式如下:
C1=abA1+a(1-b)B1+(1-a)bA2+(1-a)(1-b)B2 (1)
C2=cdA2+c(1-d)B2+(1-c)dA3+(1-c)(1-d)B3 (2)
式中,a、1-a、b、1-b、c、1-c、d、1-d为矩形模板中各插值基准点在对辅助点的影响权重,且a、b、c、d满足如下的关系:
a+b=1,c+d=1 (3)
第二步,选取一个十字形模板计算待插值像素的最终插值结果,此十字形模板如图3所示,图中上下位置的像素为第一步计算辅助点,左右位置的像素为待插值像素水平方向上左右位置的像素。此步骤的计算公式如下:
D=αC1+βC2+γA2+θB2 (4)
式中,D为最终插值结果,α、β、γ、θ为十字形模板中各插值基准点对最终插值的影响权重,且α、β、γ、θ满足如下的关系:
α+β+γ+θ=1 (5)
第三步,以上两步是此方法的设计思路,具体实现时,还需作进一步的数学推导。将式(1)、(2)代入式(4)并整理可得:
D=αabA1+αa(1-b)B1+[α(1-a)b+βcd+γ]A2
+[α(1-a)(1-b)+βc(1-d)+θ]B2 (6)
+β(1-c)dA3+β(1-c)(1-d)B3
从式(6)可以看出最终插值结果D为其邻域6个像素A1、B1、A2、B2、A3、B3的加权结果。而第一步辅助点C1、C2的计算分,别用到了A1、B1、A2、B2这4个像素和A2、B2、A3、B3这4个像素,所以把这种数学模型定义为“双四导六”插值模型。
对于一般的结构光采样数据,可以对各参数按如下原则取值:
在矩形模板中,四个角点数据到辅助点的距离相等,可认为对其影响权重一致,再根据公式(3)的限制,可取
在十字形模板中,辅助点的位置比左右两个像素到最终插值点的位置近了一半,因此它们的对最终插值结果的影响可看作是左右两个像素的2倍,再根据公式(5)的限制,可取
这样,最终插值结果可定量的表达成如下的形式:
从公式(7)中可以看出,A2、B2对最终插值结果D的影响最大,而A1、B1、A3、B3的影响则相对较小。
当插值发生在深度图像的上下边缘处时,插值情况将发生变化。如图4所示,是在图像上边缘进行插值的情况。此时,由于待插值点的上位置辅助点无法求解,所以最终插值将由待插值点左右相邻的像素值和下位置辅助点决定。这也看作是“双四导六”插值方法的一种退化情况,此时的插值结果最终会受控于A2、B2、A3、B3这4个像素,如下式所示:
在图像下边缘进行插值时,原理与此行同,插值结果如下所示: