how to use octree in pcl to create new branch node and leaf node

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

how to use octree in pcl to create new branch node and leaf node

JamesRayen
Hi,
I want to implement a function, the function can build an octree with a
determined resolution and cloud, then if any of its leaf node does not
satisfy some principles, the leaf node can be further splitted, that means
it becomes a branch node, but I feel puzzled about how implement this
function.
I only know how to build an octree with a determined resolution and cloud,
for the rest steps, I have no idea, so is there anyone who could help
me?Thanks a lot.



--
Sent from: http://www.pcl-users.org/
_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: how to use octree in pcl to create new branch node and leaf node

Fabien Rozar
Hello,

I thing I understand your issue. What you like to do is not just 
a function, you would like to change the internal behavior of an 
octree. To understand this, I recommand to read the section 3.1 
of the article:
Octree-based region growing for point cloud segmentation

It discuss about the different termination criterion while building an
octree. Quotation:
"The root node is recursively subdivided into eight
child voxels, until reaching a termination criterion. Previous works
have employed a variety of termination criteria such as minimum
voxel size (Ayala et al., 1985), a predefined maximum depth tree
(Pulli et al., 1997), or a maximum number of sample points per
voxel (Wang et al., 2005). In contrast, in this study the residual
threshold, r th , and the minimum voxel size, d min , are chosen as
the terminal conditions."

All of this to say, the sad answer to your question is, currently I
don't think there is some octree implementation in PCL which allow
you to define a custom refinement criteron.

If you would like to implement it, I would advice to not mix the 
resolution criterion with a boolean expression to refine the octree
in a first step. Do it in a class derive from OctreeBase class first
and inspire yourself from the code of OctreePointCloud class for the 
refinement logic.

Feel free to open an Issue and/or a Pull Request about that.

Best regards,
frozar

2018-01-07 16:28 GMT+01:00 JamesRayen <[hidden email]>:
Hi,
I want to implement a function, the function can build an octree with a
determined resolution and cloud, then if any of its leaf node does not
satisfy some principles, the leaf node can be further splitted, that means
it becomes a branch node, but I feel puzzled about how implement this
function.
I only know how to build an octree with a determined resolution and cloud,
for the rest steps, I have no idea, so is there anyone who could help
me?Thanks a lot.



--
Sent from: http://www.pcl-users.org/
_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users


_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: how to use octree in pcl to create new branch node and leaf node

JamesRayen
Thanks for your ideas, I would try my best to implement!



--
Sent from: http://www.pcl-users.org/
_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users