2017-11-14 3 views
0

Ich möchte einige der Filter als "Funktionen" verwenden, so dass ich den gleichen Filter für verschiedene Eingangswolken, d. H. Andere Wolke als ein Argument übergeben. Zum Beispiel kann der Voxelfilter (siehe unten) für verschiedene Eingangswolken verwendet werden. Wenn ich Wolke A und B habe, muss ich sor1 und sor2 definieren, weil ich nicht den gleichen sor auf beiden verwenden kann, oder vielleicht ist es möglich, aber ich weiß nicht, wie man es macht. Kann jemand einige Ideen dazu teilen?PCL Voxel Downsampling-Filter als Funktion

// Create the filtering object 
pcl::VoxelGrid<pcl::PCLPointCloud2> sor; 
sor.setInputCloud (cloud); 
sor.setLeafSize (0.01f, 0.01f, 0.01f); 
sor.filter (*cloud_filtered); 

Antwort

1

Ja, rufen Sie einfach setInputCloud() erneut für eine neue Wolke und dann filter().

Oder Sie können einfach alles in eine Funktion einfügen und jedes Mal ein neues Objekt zur Vereinfachung erstellen.

voxelFilter(cloud) 
{ 
    // Create the filtering object 
    pcl::VoxelGrid<pcl::PCLPointCloud2> sor; 
    sor.setInputCloud (cloud); 
    sor.setLeafSize (0.01f, 0.01f, 0.01f); 
    sor.filter (*cloud_filtered); 
    return cloud_filtered; 
}