Learn R Programming

lidR (version 3.1.1)

shape_detection: Algorithms for shape detection of the local point neighborhood

Description

These functions are made to be used in segment_shapes. They implement algorithms for local neighborhood shape estimation.

Usage

shp_plane(th1 = 25, th2 = 6, k = 8)

shp_hplane(th1 = 25, th2 = 6, th3 = 0.98, k = 8)

shp_line(th1 = 10, k = 8)

Arguments

th1, th2, th3

numeric. Threshold values (see details)

k

integer. Number of neighbours used to estimate the neighborhood.

Details

In the following, \(a1, a2, a3\) denote the eigenvalues of the covariance matrix of the neighbouring points in ascending order. \(th1, th2, th3\) denote a set of threshold values. Points are labelled TRUE if they meet the following criteria. FALSE otherwise.

shp_plane

Detection of plans based on criteria defined by Limberger & Oliveira (2015) (see references). A point is labelled TRUE if the neighborhood is approximately planar, that is: $$a2 > (th1*a1) and (th2*a2) > a3$$

shp_hplane

The same as 'plane' but with an extra test on the orientation of the Z vector of the principal components to test the horizontality of the surface. $$a2 > (th1*a1) and (th2*a2) > a3 and |Z| > th3$$ In theory |Z| should be exactly equal to 1. In practice 0.98 or 0.99 should be fine

shp_line

Detection of lines inspired by the Limberger & Oliveira (2015) criterion. A point is labelled TRUE if the neighborhood is approximately linear, that is: $$th1*a2 < a3 and th1*a1 < a3$$

References

Limberger, F. A., & Oliveira, M. M. (2015). Real-time detection of planar regions in unorganized point clouds. Pattern Recognition, 48(6), 2043<U+2013>2053. https://doi.org/10.1016/j.patcog.2014.12.020