Is there any support for 3 dimensional structured point cloud management.
The biggest thing is I would like to preserve the 3d structure through file
I am open to a hack if someone has a way to do this.
Currently the only idea I have is to make the first point in the cloud
always store the 3 dimensions (this is gross, but there is no label string
on clouds that I can find and width height are managed so as to need to
equal cloud size (the idea there being enter height and width and divide out
cloud size to get 3rd dimension)).
On 17-01-2018 15:00, Sneaky Polar Bear wrote:
> Is there any support for 3 dimensional structured point cloud management.
By that I assume you want to be able to use 3D indexing to access any
point of your cloud, voxel grid style?
> The biggest thing is I would like to preserve the 3d structure through file
This will depend entirely on your required processing pipeline
> I am open to a hack if someone has a way to do this.
> Currently the only idea I have is to make the first point in the cloud
> always store the 3 dimensions (this is gross, but there is no label string
> on clouds that I can find and width height are managed so as to need to
> equal cloud size (the idea there being enter height and width and divide out
> cloud size to get 3rd dimension)).
You want something so specialized that I would likely try an initial
attempt by writing a class inheriting from PointCloud, overriding
whatever is needed. You'll probably need to modify the library's source
and make some methods virtual.
The biggest problem is that using vtk dicom reader is painfully slow
(minutes). If I take that same data and stash it in a pcd binary file
(unstructured), it saves and loads in a tiny fraction of the time (seconds).
I guess this is really the meat of my question, is there any *existing*
formal file structure that I could use to store and retrieve 3d point data
at equivalent speeds the the pcd binary read-writer.
Yes, I do want 3d indexing, but I am ok with (the c-style) multi dim, where
if u know your dims, just have a single dim array and add multipliers on
your indices to grab and edit stuff...
As far as the processing pipeline, I am not sure I understand your
tbh I am hesitant to modify the library's source or do anything formal
unless this is something others want/ need. The only mention I have seen on
this forum of DICOM or 3d structure in general is back in 2013 where rusu
said they had no desire to support it. I will look into a class inheriting
from PointCloud though to get a better feel for what it would take.
As far as hacks (the cheapest and smallest modification possible) how many
things would I break if I deleted the dimensionality check on the pcd writer
(it checks that width x height = points), if I simply bypass that check,
that could be a reasonably clean way (I think*) of encoding my data into the
existing system (ie width, height, points/(width*height)).
*I am lazy, you can't say things like that... so many more important
problems to solve properly*