Kann nicht kommentieren, aber das Entfernen von NaNs aus Ihrer Punktwolke macht es standardmäßig unorganisiert. Sehr wahrscheinlich sind die NaNs als Dummy-Punkte vorhanden, falls Ihr Instrument nicht in der Lage war, einen Punkt in der Matrix zu beobachten, nur um die Matrixdimensionen korrekt zu halten. Wenn Sie diese entfernen, wird die Matrixstruktur zerstört und Sie haben eine andere Anzahl von Punkten als Ihre Matrix von 1280 * 720 erwarten würde.
Wenn Sie möchten, nach unten eine organisierte Punktwolke sagen Probe um einen Faktor von 2, könnten Sie so etwas wie
int scale = 2;
pcl::PointCloud<pcl::your_point_type> down_sampled_cloud;
down_sampled_cloud.width = original_cloud.width/scale;
down_sampled_cloud.height = original_cloud.height/scale;
for(int ii = 0; ii < original_cloud.height; ii+=scale){
for(int jj = 0; jj < original_cloud.width; jj+=scale){
down_sampled_cloud.push_back(original_cloud.at(ii,jj));
}
}
ändern Maßstab, um versuchen, was Sie wollen.
Bei dieser Methode wird nur die ursprüngliche Punktwolke abgetastet, es werden keine Punkte zwischen vorhandenen Punkten interpoliert. Die Skalierung um einen Dezimalfaktor ist komplizierter und kann zu unerwünschten Ergebnissen führen, wenn die Oberfläche nicht kontinuierlich ist.
Dank @Anatole für Ihre Erklärung! Tatsächlich habe ich mir auch eine andere Methode ausgedacht, die Ihrer (vielleicht genauer) ähnelt. Ich berechne nur den Durchschnittswert jedes m * m Fensters der src Wolke als den entsprechenden Wert innerhalb der Zielwolke. –
Ich habe auch das Problem von NaN erkannt. Es scheint, dass "removeNaNFromPointCloud" die Cloud nicht organisiert hält. Ich ignoriere einfach jeden NaN-Punkt bei der Berechnung des Durchschnittswerts und belasse den Punkt NaN, wenn alle Punkte innerhalb des Fensters des Src-Bildes NaN-Punkte sind. Außerdem denke ich, dass es bessere Interpolationsmöglichkeiten geben sollte, als nur den Durchschnitt im Fenster zu berechnen. Neugierig, es gibt keine verwandte API von PCL. –
Eine weitere Frage über organisierte Punktwolke, @Anatole. Kennen Sie das Downsampling für eine organisierte Punktwolke mit PCL? Vielen Dank. –