2016-08-09 45 views
0

Ich habe 10 Punkte Wolken in Matlab erstellt, aber ich habe unterschiedliche Anzahl von Punkten in jeder Wolke. Ich möchte es auf die gleiche Anzahl von Punkten dezimieren. Gibt es in Matlab eine Funktion, um die Punktwolke auf die feste Anzahl von Punkten neu zu berechnen/zu dezimieren (zum Beispiel: auf 1000 Punkte)?Punktwolken Dezimierung in Matlab

Ich würde für jede Hilfe & Beratung schätzen bitte

Antwort

1

:) Unter der Annahme, dass Ihre Cloud-Punkte als Matrizen gespeichert sind, werden Sie 10 Matrizen mit unterschiedlicher Anzahl von Zeilen haben jeweils (Vielleicht haben Sie nur eine Zelle speichert die Matrizen). (wir nennen sie PointCloud1, PointCloud2 ... PointCloud10)

Wenn Sie nach dem Zufallsprinzip 1000 Punkte jeder Matrix nehmen wollen (vorausgesetzt, dass die kleinste Matrix mindestens 1000 Punkte hat), würde ich Randperm verwenden, um eine zufällige Permutation zu erzeugen Indizes und dann die ersten 1000 Indizes.

Beispiel PointCloud1 mit:

[nrows, ncols] = size(PointCloud1); 
idx = randperm(nrows); 

sub_PC1 = PointCloud1(idx(1:1000),:); 

Hier sub_PC1 ist eine Teilstichprobe von 1000 Zufallsreihen PointCloud1.