光度立体法可以根据二维纹理信息提取出三维模型。photometric_stereo算子至少需要三张图,这些图是在相机和物体相对位置不变条件下,通过不同方向打光获取的。物体的三维模型主要是根据三维表面的局部梯度计算提取的。三维表面的局部梯度信息可以进一步整合获得高度信息图,灰度值与高度值一一对应。二维纹理被称为反照率,它对应于物体表面局部光吸收和反射特性,被遮挡的部分没有此特性。
光度立体法的典型应用是检测物体表面微小变化,例如,受打光方向影响的缺陷。
光度立体法基于Woodham算法。其原理是假定相机是无畸变成像,光束都是平行且均匀的,物体具有朗伯反射特性。可以用远心镜头/长焦镜头,均匀强度的远心照明光源/点光。
有镜面反射的物体或者区域(镜子或者光滑的表面)不能使用此方法,会得到一个错误的结果。
Demo效果
UI布局
关键算子
1,应用未校准的光度学立体以检索每个像素的局部方向。
1.1,uncalibrated_photometric_stereo
1.2, photometric_stereo
2,使用梯度场作为算子derivate_vector_field的输入来计算表面的高斯曲率。在曲率图像中通常很容易检测到缺陷。
更多原理