Halcon表面缺陷检测-光度立体法

来自halcon中的simple.相关介绍光度立体算法.

相关的例子:

inspect_blister_photometric_stereo.hdev

inspect_flooring_photometric_stereo.hdev

inspect_flooring_uncalib_photometric_stereo.hdev

inspect_leather_photometric_stereo.hdev

inspect_shampoo_label_photometric_stereo.hdev

主要涉及的算子 photometric_stereo -- 通过光度立体技术重建表面

photometric_stereo(Images : HeightFieldGradient,Albedo : SlantsTiltsResultType,ReconstructionMethodGenParamNameGenParamValue : )

  • 描述:
    photometric_stereo可以用来从一个物体的两维纹理,例如它的打印照片,来区分出它的三维形状。这个算子需要至少需要三张使用已知的不同方向的光源拍摄的相同物体的图像。注意,拍摄这些照片时,相机的视角应该是固定的。(译者注:即固定相机和物体,从多个已知的不同方向打光拍摄)
    物体的这种三维形状从根本上来说是通过计算3维表面的局部梯度。这些梯度可以被进一步综合起来获取到一个高度场,也就是说,一张图片的每个像素都与一个相对高度相关联。(译者注:计算得出的)二维的纹理被称为反照率,与对局部光源的吸收和反射表面特征有关,把所有的阴影都排除在外。

    • 光照立体法的典型应用
      光照立体法的典型应用是用来检测表面的变化,这种变化可能意味着缺陷,或者被用来将拍照时光照角度的影响排除在外,例如用于非扁平字符的打印检查。注意,光度立体法不适用于重建绝对高度,也就是说,它不能替代传统的3D重建算法,如对焦测距和激光三角测量。

    • 光度立体法的局限性
      光度立体法是基于Woodham算法,因此假设相机表现为无畸变的投影。这也就意味着,你必须使用一个远心镜头或者长焦镜头。另一方面,它假设了每个光源发出的都是平行的等截面的光。这也就是说,你使用的照明必须是远心光源,有着均匀的强度,或者作为替代,远距离的点光源。此外,这个物体必须有朗伯反射特性,也就是说它对光的反射是漫反射。有镜面反射的物体或者区域(镜子或者光滑的表面)不能被正确处理,会得到一个错误的结果。

    • 照片采集设置
      这个使用远心镜头的相机必须被放置得和被重建的平面正交,即互相垂直。相机和平面的角度在采集过程中一定不能改变。相反,光源和平面的夹角必须至少改变三次来获取三张灰度图片。

    • <

你可能感兴趣的:(HALCON)