Template Function OrganizedPointFilters::Filter::BilateralFilterNormals

Function Documentation

template<int kernel_size = 3>
OrganizedTriangleMatrix OrganizedPointFilters::Filter::BilateralFilterNormals(Eigen::Ref<RowMatrixXVec3f> opc, int iterations = 1, float sigma_length = 0.1f, float sigma_angle = 0.261f)

Bilateral filtering to an organized point cloud (OPC). An implicit mesh is defined by OPC wherein each 2X2 quad of the OPC creates two right-cut triangles. Will perform bilateral filtering for an organized point cloud and return smoothed triangle normals.

O = Point

             O----------------------O
             |                    XX|
             |  TRI 0          XXX  |
             |              XXXX    |
             |            XXX       |
             |         XXX          |
             |       XXX            |
             |     XXX       TRI 1  |
             |   XXX                |
             |XXX                   |
             O----------------------O

Return

OrganizedTriangleMatrix M X N X 2 X 3. Any invalid triangle will have NaN for normals! Must filter out

Template Parameters
  • 3: Kernel size. Increasing the kernel size will make smoother but have higher computation costs.

Parameters
  • opc: Organized Point Cloud. M X N X 3 Eigen Matrix

  • iterations: How many iterations of bilateral smoothing

  • sigma_length: The standard deviation for exponential decay based on centroid difference between neighboring triangles

  • sigma_angle: The standard deviation for exponential decay based on surface normal difference between neighboring triangles.