光度立体法总结

所谓光度立体法是根据在不同光源方向的情况下拍摄的多幅图像的光强来计算物体表面的方向梯度从而获得图像的三维信息。

传统的光度立体一般是假设物体是理想的朗伯表面,假设光照是理想的平行光照。其反射分布函数可以由下面这个式子得到:

R(p, q)=\frac{Q\left(1+p p_{s}+q q_{s}\right)}{\sqrt{1+p^{2}+q^{2}} \sqrt{1+p_{s}^{2}+q_{s}^{2}}}

根据图像的辐照度方程E(x, y)=R(p, q)可得到表面方向与图像亮度之间的对应关系

E(x, y)=\frac{Q\left(1+p p_{s}+q q_{s}\right)}{\sqrt{1+p^{2}+q^{2}} \sqrt{1+p_{s}^{2}+q_{s}^{2}}}

式中Q 是反射常数(p,q)为物体表面的方向梯度,p=\frac{\partial z(x, y)}{\partial x}, q=\frac{\partial z(x, y)}{\partial y}

\left(p_{s}, q_{s}\right)为光源的方向,p_{s}=-\cos V_{0} \tan H_{0}, q_{s}=-\sin V_{0} \tan H_{0}\left(V_{0}, H_{0}\right)为光源的倾角与 仰角。

对于在 3 个不同的光照条件下得到的 3 幅光照图像可以得到以下方程组:

\left\{\begin{array}{l} E_{1}(x, y)=\frac{Q\left(1+p p_{1}+q q_{1}\right)}{\sqrt{1+p^{2}+q^{2}} \sqrt{1+p_{1}^{2}+q_{1}^{2}}} \\ E_{2}(x, y)=\frac{Q\left(1+p p_{2}+q q_{2}\right)}{\sqrt{1+p^{2}+q^{2}} \sqrt{1+p_{2}^{2}+q_{2}^{2}}} \\ E_{3}(x, y)=\frac{Q\left(1+p p_{3}+q q_{3}\right)}{\sqrt{1+p^{2}+q^{2}} \sqrt{1+p_{3}^{2}+q_{3}^{2}}} \end{array}\right.

式中E_{1}(x, y), \quad E_{2}(x, y), \quad E_{3}(x, y)分别对应 3 幅图像象素点的规格化亮(灰度值与图像上最大灰度值之比),

\left(p_{1}, q_{1}\right),\left(p_{2}, q_{2}\right) ,\left(p_{3}, q_{3}\right)分别为 3 幅图像的光源方向。

通过对方程组求解得到图像上各象素点的表面方向梯度 , 在实际情况中由于图像已离散化因此\frac{\partial z(x, y)}{\partial x}\frac{\partial z(x, y)}{\partial y}

可用它们的一次差分近似地表示:

\begin{array}{l} p=\frac{\partial z(x, y)}{\partial x}=z(x+1, y)-z(x, y) \\ q=\frac{\partial z(x, y)}{\partial y}=z(x, y+1)-z(x, y) \end{array}

设起始点\left(x_{0}, y_{0}\right)高度为Z_{0}(起始点通常为图像中心点)则可以求出\begin{aligned} &\left(x_{0}+1, y_{0}),\left(x_{0}-1, y_{0}\right),\left(x_{0}, y_{0}+1\right),\left(x_{0}, y_{0}-1\right) \end{aligned}

四个相邻点的高度值并进一步扩散得到所有离散图像点上的高度值从而最终恢复物体的表面形状.

你可能感兴趣的:(光度立体法总结)