c++ - To extract a set of feature and cluster data from the given point cloud data -
presently using pcl 1.8.0, having sample cloud data of plate has of components fitted on plate of few centimeters above on actual plate.
this cloud data cluster , features data. cloud data
by using euclidean cluster extraction, able cluster count , cluter shapes sample data , these clusters saved different pcd depending on cluster data , shape shown below. extracted cluster data
now if u observe in above image getting outer boundary of cluster per requirement, want entire outer boundary , inner features of cluster written separate pcd file, further calculation,
can 1 suggest me on how extract cluster , feature data given cloud data , write separate pcd files.
any suggestion helpful
thanks in advance
one possible solution problem:
- compute clusters you're doing.
- pick cluster you're interested in.
- compute minimum oriented bounding box containing cluster.
- use computed box clip original point cloud, getting points within box.
the process compute minimum oriented bounding box described on pcl forums. however, here's outline of solution nicola fioraio, convenience , further references:
1) compute centroid (c0, c1, c2) , normalized covariance
2) compute eigenvectors e0, e1, e2. reference system (e0, e1, e0 x e1) --- note: e0 x e1 = +/- e2
3) move points in rf --- note: transformation given rotation matrix (e0, e1, e0 x e1) & (c0, c1, c2) must inverted
4) compute max, min , center of diagonal
5) given box centered @ origin size (max_pt.x - min_pt.x, max_pt.y - min_pt.y, max_pt.z - min_pt.z) transformation have apply rotation = (e0, e1, e0 x e1) & translation = rotation * center_diag + (c0, c1, c2)
Comments
Post a Comment