2017-11-14 3 views
0

異なるフィルタを異なる入力クラウドに使用する、つまり異なるクラウドを引数として渡すために、いくつかのフィルタを「関数」として使用したいと考えています。たとえば、ボクセルフィルタ(下記参照)をさまざまな入力雲に使用できます。私が雲AとBを持っているなら、私はsor1とsor2を定義する必要があります。なぜなら、私は両方とも同じソーを使うことができないか、あるいは可能かもしれないが、それをやる方法がわからないからです。誰かがこれについていくつかのアイデアを共有できますか?PCLボクセルダウンサンプリングフィルタを関数として使用する

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

答えて

1

新しいクラウドの場合は、もう一度setInputCloud()を呼び出してからfilter()を呼び出してください。

または、関数にすべてを入れて、簡単にするたびに新しいオブジェクトを作成できます。

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; 
} 
関連する問題