Question

I have a set of 3D points which numbers up around 1 million points. I am looking to visualise these with matlab.

I have tried the following functions:

plot3
scatter3

But they are both very sluggish. Is there a more efficient way to visualise this level of points in matlab? Maybe a way to mesh the points?

If not can anyone suggest a plug-in or even a different program for visualising 3D points?

Was it helpful?

Solution 2

fscatter3 from the file exchange, does what you like.

OTHER TIPS

You're going to run into efficiency issues no matter what plugin/program you use if you want all million+ points to show up in a plot. My suggestion would be to downsample. Use the plot3 or scatter3 function on every other point, or every nth point, until you get a figure that is not sluggish. As long as the variance in your data isn't astronomical, downsampling a little bit shouldn't affect the overall distribution of points (given that you have a million+ points). And any software that is able to display that much data without being sluggish is most likely downsampling/binning or using some interpolation technique to do so (so you might as well have control over it).

Is there a specific reason to actually have it display that many points?

I Googled around a bit and found some people who have had similar issues (someone suggested Avizo as an alternate program but I've never used it):

An alternate solution would be to generate a histogram if you're more interested in the density of the data:

I you know beforehand roughly the coordinates of the feature you are looking for, try passing the cloud through a simple pass-through-filter, which essentially crops your point cloud. I.e. if you know that the feature is at a x-coordinate > 5, remove all points with x-coordinate < 5.

This filter could for the first coordinated be realized as data = data(data(1,:) > 5,:); Provided that your 3d data is stored in an n by 3 matrix.

This, together with downsampling, could help you out. If you still find the performance lagging, consider using something like the PCD viewer in PointCloudLibrary, check half way down the page at http://pointclouds.org/documentation/overview/visualization.php

It is a stand alone app you could launch from matlab. I find it's performance far better than the sluggish matlab plotting tools.

For anyone who is interested I ended up finding a Point cloud visualiser called Cloud Compare. It is extremely fast and allows selection and segmentation as well as filtering on point clouds.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top