Interpolating points of a 3D point cloud
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have two questions:
1. I have a 3D point cloud which isn't continuous. There are a few gaps in it. I want to interpolate this data and fill in those gaps.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/150830/image.png)
I came across functions like triscatteredInterp and scatteredInterpolant. I did not understand how to proceed with this in my case. Kindly help me here. I am getting a blank output.
This is what I am doing:
figure,
x = PointCloud(:,:,1);
x_max = max(x(:))
x_min = min(x(:))
y = PointCloud(:,:,2);
y_max = max(y(:))
y_min = min(y(:))
z = PointCloud(:,:,3);
[xi,yi] = meshgrid(x_max:0.01:x_min, y_max:0.01:y_min);
xyz_2D = cat(2,x(:),y(:),z(:));
pointcloud_2D = xyz_2D(~any(isnan(xyz_2D)|isinf(xyz_2D),2),:);
zi = griddata(pointcloud_2D(:,1),pointcloud_2D(:,2),pointcloud_2D(:,3),xi,yi);
surf(xi,yi,zi); xlabel('x') ylabel('y') zlabel('Depth')
2. My second question is: looking at the point cloud, I want to remove those parts which have lesser number of connected pixels. The way we have bwlabel for 2D Images, is there any function in MATLAB which outputs labels for 8 connected objects? This way, I can disregard the one with lesser number of points connected.
1 Kommentar
Gaurav
am 7 Mär. 2016
Hi @Meghana did you found a good approach for your first question? If yes Can you please tell how you solved it.
Thanks
Antworten (1)
Siehe auch
Kategorien
Mehr zu Point Cloud Processing finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!