PCLレッスン4:パススルーフィルタリング+マルチビュー視覚化



Pcl Lesson 4 Pass Through Filtering Multi View Visualization



パススルーフィルタリングを介して、元のレーザー点群を入力し、
1つのウィンドウに2つの点群を同時に表示します

入力:pcdData //lader3.PCDファイル
出力:視覚化



#include #include #include #include #include #include #include #include #include #define random(x1,x2) ((rand()%x2) - x1/2.0) int main() { Pcl::PointCloud::Ptr cloud2(new pcl::PointCloud) //PointXYZ data structure pcl::PointCloud::Ptr cloud_medium(new pcl::PointCloud) pcl::PCDReader reader reader.read('pcdData//lader3.PCD',*cloud2) pcl::PassThrough pass pass.setInputCloud(cloud2) pass.setFilterFieldName('x') pass.setFilterLimitsNegative(false) pass.setFilterLimits(5, 10) pass.filter(*cloud_medium) //Double viewport int v1(0), v2(0) boost::shared_ptr viewer(new pcl::visualization::PCLVisualizer('3D Viewer')) Viewer->createViewPort(0.0, 0.0, 0.5, 1.0, v1)//(Xmin,Ymin,Xmax,Ymax)Set window coordinates viewer->setBackgroundColor(0, 0, 0, v1) Viewer->addText('original', 10, 10, 'v1 text', v1)//Set the viewport name Viewer->addPointCloud(cloud2, 'sample cloud1', v1)//Add point cloud viewer->createViewPort(0.5, 0.0, 1.0, 1.0, v2) viewer->setBackgroundColor(0.3, 0.3, 0.3, v2) viewer->addText('after filtered', 10, 10, 'v2 text', v2) viewer->addPointCloud(cloud_medium, 'sample cloud2', v2) viewer->addCoordinateSystem(1.0,'sample cloud1') while (!viewer->wasStopped()) { viewer->spinOnce() } return 0 }