Purpose

Performs a rank filtering on intensity replacements of neighbours for each points. For each point of the input point cloud the neighbours in the given Radius are searched. From all of these neighbours the intensity replacements are taken, sorted numerically upwards, and at Rank As Percentage position in the sorted list the output value is taken.

Since there is no fixed number of neighbours around any point the quantile on the sorted neighbour values cannot be given as a specific position, but only as a relative one; therefore Rank As Percentage is from [0,1]. See Rank As Percentage for details about exact mapping of values to quantiles. If less than one neighbour is found, the input value is passed through and the processed point is left unchanged.

The Rank As Percentage is also useful to perform gray value dilations/erosions which also equal to minimum/maximum operations when Rank As Percentage is 0 or 1.

The modified members (named also “intensity replacements”) of the points are:

  • intensity on pcl::XYZINormal points
  • curvature on pcl::XYZLNormal points
  • curvature on pcl::XYZRGBNormal points
  • none on pcl::PointXYZ points

Note that no spatial position of any point is changed, only the intensity replacements of the points are modified.

Windows

Default Panel

../../../Projects/MLPCLFilters/Modules/mhelp/Images/Screenshots/PCLIntensityRankFilter._default.png

Input Fields

inputPCLObject0

name: inputPCLObject0, type: MLBase

Connect a point cloud with points having a member usable as intensity which shall be filtered by the module. Point clouds without such a member in the points are supported, however, filtering has no effect.

Output Fields

outputPCLObject0

name: outputPCLObject0, type: MLBase

Provides the filter result of the input pcl::PointCloud, if there is any, otherwise it will contain NULL output data. Corresponding indices produced by the filter are also provided in the output base object (currently only the default ones).

Parameter Fields

Visible Fields

Status

name: status, type: String, persistent: no

see PCLModule.status

Radius

name: radius, type: Double, default: 2

The radius of the sphere around each point in which neighbours points are searched.

Rank As Percentage

name: rankAsPercentage, type: Double, default: 2

The percentage from [0,1] at which the ranked value shall be taken from (such as 0.5 = median-, 0.0 = minimum-, 1.0 = maximum-filtering). Rank As Percentage values are always clamped against [0,1]. As an example: if four neighbour points with value (3, 7, 11, 19) are found in a distance of smaller or equal Radius, then Rank As Percentage ranges [0,0.25[ are mapped to 3, [0.25,0.5[ to 7, [0.5, 0.75[ to 11, and [0.75,1] to 19.