光栅投影中Gamma校正

学习 郑东亮 达飞鹏 《提高数字光栅投影测量系统精度的gamma校正技术》一文后,对其中的关键技术进行了解析。

摄像机获得的实际灰度图像:I_{c}^{i}=c_{1}(I_{s}^{i})^{\gamma _{a}/\gamma _{p}+\gamma _{b}}}}}}}+c_{2}}

其中{\gamma _{a}/\gamma _{p}+\gamma _{b}}=\gamma^{{}'}是整个系统的gamma值,\gamma_{p}是预编码值(需要根据实验进行选择),c_{1}是幅度调制(保证I^{i}_{s}归一化),c_{2}是背景光强,\gamma_{a}\gamma_{b}是由系统确定的值(需要通过投射不同的灰度图进行解算)。

gamma校正的目的:选择一个合适的预编码值\gamma_{p},使得\gamma^{'}=1,从而使系统的gamma失真得以消除或者减小。

-----------------------------------------

如何求解上述的\gamma^{{}'}呢?

可以通过投射不同的灰度图,因为投射灰度图的灰度值已知,获取的灰度图的灰度值也已知,可以联立方程组求解只含有一个未知数的超越方程(可以采用寻优算法得到未知数的最佳值)。

超越方程组:\frac{I^{c}_{1}-I^{c}_{2}}{I^{c}_{1}-I^{c}_{3}}=\frac{(I^{s}_{1})^{\gamma^{{}'}}-(I^{s}_{2})^{\gamma^{{}'}}}{(I^{s}_{1})^{\gamma^{{}'}}-(I^{s}_{3})^{\gamma^{{}'}}}

寻优目标函数:f(\gamma^{{}'})=\frac{I^{c}_{1}-I^{c}_{2}}{I^{c}_{1}-I^{c}_{3}}-\frac{(I^{s}_{1})^{\gamma^{{}'}}-(I^{s}_{2})^{\gamma^{{}'}}}{(I^{s}_{1})^{\gamma^{{}'}}-(I^{s}_{3})^{\gamma^{{}'}}}

得到\gamma^{{}'}后,可以根据{\gamma _{a}/\gamma _{p}+\gamma _{b}}=\gamma^{{}'}解出\gamma_{a}\gamma_{b}(当然,需要利用寻优算法寻找到两个最佳的\gamma^{{}'}

得到\gamma_{a}\gamma_{b}后,令\gamma^{{}'}为1,再解出最终的预编码值\gamma_{p}

-----------------------------------------

如何选择合适的预编码值?

这部分内容是与传统的方法进行对比,找到一个可以使相位误差与传统方式得到的误差最为接近时的预编码值,可以试错,也可以猜想一个不太离谱的值,然后取其一定范围的值群,最后进行实验的对比。

这部分内容感觉有点怪怪的,看似不符合一般科学实验的规则。。。但是这种方式带有逆向思维的处理方法非常的独到!通过猜想,然后验证猜想,找到真理!

-----------------------------------------

灰度响应范围如何确定?

这部分内容可以通过投射不同灰度级的图像进行分析,得到一个合适的灰度级范围。

-----------------------------------------

后续操作

确定好了灰度级范围后,就可以选取3种不同灰度值作为计算机的输入图像灰度值(归一化到I^{s}_{i}),这样就可以正常投射灰度图像了,然后再根据上述的步骤一步步的确定参数。

这里有个技巧,是初始化预编码值,根据预编码值,得到确定的灰度响应函数,然后计算\gamma^{{}'}\gamma_{a}\gamma_{b},以及最后的\gamma_{p}

-----------------------------------------------------------------------------

上述方法的好处在于可以投影很少的灰度图像得到系统的gamma值。在得到gamma值后,可以根据灰度响应函数,建立LUT,后面再对理论的灰度图像进行校正,最后让投影仪投射到待测物体上,那么摄像机获取到的图像就是经过gamma校正后的灰度图像了。

 

 

你可能感兴趣的:(机器视觉,光栅投影,结构光,gamma校正)