三维重建技术(3)Shape from shading(SFS)的原理

转自:
Shape from shading(SFS)的原理和我的实现结果, RyuZhihao123
Shape from shading是由Horn于1980年提出的一种单幅图像恢复三维信息的一种方法(Single Image-based Reconstruction)。对于Lambert表面具有较好的效果。下面简要的介绍一下其基本步骤和原理:

1. 得到灰度图像I。

可以利用如下关系式计算:
gray = 0.3r + 0.59g + 0.11b;

2. 求出变换到光源坐标系的变换矩阵R

已知光源的两个偏角φs 和θs,并通过下面的关系式计算变换矩阵R:

3. 将矩阵R与原灰度图像I相乘,调整相机沿光源方向看去,得到新灰度图像E。

这一步实现了,从成像坐标系转换到光源坐标系。

4. 计算新灰度图像E沿x和y方向的梯度(Ex和Ey),其实就是求偏导。
5. 计算物体表面某点的倾角φ。

下图表示了什么是倾角φ:

关于倾角φ的计算,便是利用lambert表面的性质:
lambert余弦定理(Lambert Cosin Law)

我们利用Lambert Cosin Law 便可以很轻松的利用下面的关系式估计出某点的倾角:
任意亮度对应的倾角φi:Ei=Emax*cos φi
则,物体表面任意点的倾角φi即为:φi=arccos(Ei/Emax)

6. 下图表示了什么是偏角φ:

关于偏角θ,可以通过前面第4步求出的两个方向的梯度计算出来:
θi = arctan( Ey / Ex);

7. 计算在光源坐标系下,物体表面任意点的法向量(nx,ny,nz)


此时把物体表面任意面源仍看做是一个球体,此时在光源坐标系下,物体表面某点的法向量为:
n' = (nx,ny,nz);
其中:nx = sinφ*cosθ; ny = sinφ*sinθ; nz = cosφ

8. 计算在光源坐标系下,原图像某点对应的高度值:

height' = nz* 反射率。 (反射率可以根据材质选取)

9. 将结果从光源坐标系恢复到原成像坐标系:

只需将结果与如下的逆变换矩阵相乘即可

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Shape from shading 是一种计算机视觉的方法,通过解析图像中的阴影来重建物体的几何形状。 Shape from shading 代码可以分为几个主要步骤: 1. 图像预处理:首先,需要对输入图像进行预处理。可以使用常见的图像处理技术如灰度化、平滑滤波等将彩色图像转换为灰度图像,并降噪以提高重建结果的质量。 2. 光照估计:在图像中的每个像素点,需要估计它受到的光照条件。可以使用反射模型和阴影信息综合计算每个像素点的光照值。常见的方法有球面哈尔蜂巢反射模型等。 3. 阴影分析:通过分析图像中的阴影信息,可以得到物体表面的几何形状信息。可以使用梯度信息和光照估计结果来计算每个像素点的法向量。 4. 定义反射模型:通过用倒置的光照向量和法向量进行内积计算表面倾斜方向的灰度,从而进一步估计局部高度图。 5. 优化求解:在前面的步骤中得到了局部高度图的估计,需要进行全局的求解优化以得到整个物体的几何形状。可以使用最小二乘法或其他优化算法进行求解。 6. 重建结果展示:最后,根据优化求解得到的几何形状信息,可以进行可视化展示,如渲染成三维模型。 需要注意的是,Shape from shading 方法是一种近似方法,对光照条件和阴影信息要求较高,同时也对输入图像的质量有一定要求。在实践中需要根据具体情况进行参数调整和优化,以得到更好的重建结果。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值