2017-06-16 4 views
-1

Ich habe eine XYZRGB-formatierte Punktwolke Daten. Die Dateigröße ist riesig und besteht aus Hunderttausenden von Punkten. Wie kann ich die Dichte von Punkten verringern? Sagen Sie für jeden 10 Nachbarn, ich möchte einen einzigen Punkt Durchschnitt aller anderen Punkte (sowohl XYZ und RGB) haben. Jeder Code in Java oder Matlab ist willkommen. Hier ist ein Beispiel .ply Punkt Cloud-Datei, die Sie bearbeiten können: https://drive.google.com/open?id=0B667VfPLdu3_RVpKV1liZ0ktRVUVerringern Sie die Dichte von 3D-Punktwolken

Ich habe versucht, einige Interpolation in Matlab wie folgt. Aber das ist nicht was ich will. Ich muss die Dichte verringern.

% Load Point Cloud: 
Point_Cloud = importdata(‘Point_Cloud_1.txt') 
x   = Point_Cloud(1,:)'; 
y   = Point_Cloud(2,:)'; 
z   = Point_Cloud(3,:)'; 

% Interpolate inspection points: 
Density = 300; 
[X,Y] = meshgrid(linspace(min(x), max(x), Density), linspace(min(y), max(y), Density)); 
F  = scatteredInterpolant(x, y, z, 'natural','linear'); 
Z  = F(X,Y); 
Int_PC = [reshape(X,Density^2,1) reshape(Y,Density^2,1) reshape(Z,Density^2,1)]; 
Int_PC(any(isnan(Int_PC{i}),2),:) = []; 

% Plot results: 
scatter3(x, y, z, 20, 'r', 'fill'); % Original data 
hold on; 
scatter3(Int_PC(:,1), Int_PC(:,2), Int_PC(:,3), 20, 'r', 'fill'); % Interpolated data 
+0

@SardarUsama Ich fügte eine Beispieldatei hinzu. –

+0

@SardarUsama Leider habe ich versucht, die meisten verwandten Tags hinzuzufügen. Schlecht, ich bin auf 5 begrenzt. Es ist jetzt zurück! –

Antwort

0

Der VoxelGrid-Filter erfüllt, was Sie suchen. Dies bietet einige Erklärung und Beispielcode: http://pointclouds.org/documentation/tutorials/voxel_grid.php

+0

Funktioniert es mit meiner mitgelieferten Beispieldatei? Es ist XYZRGB .ply formatiert. –

+0

Ja, sobald die Punktwolke geladen ist. https://stackoverflow.com/questions/30764222/how-to-read-ply-file-using-pcl – brad

Verwandte Themen