-
Notifications
You must be signed in to change notification settings - Fork 2
Viewer
Harumo Sasatake edited this page Oct 19, 2018
·
8 revisions
点群pcl::PointCloud<> を表示するために,ビューワーが存在します. このビューワーはとてもかんたんに利用することが可能です.
たとえば,pcl::PointCloud<pcl::PointXYZ> を表示したい場合は
pcl::visualization::PC:Visualizer viewer("viewer_name");
viewer.addPointCloud<pcl::PointXYZ>(point_cloud, "cloud_name");
というふうにたった2行で表示させることが可能です.
## 点群の設定を変更 例えば,この点群は赤色で表して,この点群は青色であらわしたいということはよくあることなので, もちろんそのしくみはpclに存在します.
使用している点群がpcl::PointXYZの場合を例に話をします. pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> を使用します.
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> cloud_color_handler(cloud_ptr, 255, 255, 255);
viwer.addPointCloud(cloud_ptr, cloud_color_handler, "cloud_name");
こんな感じで,色はRGBの0〜255で表せます.最後に表示したい点群と一緒にビューワーに突っ込めば終了です.
点群を囲うようなバウンディングボックスを表示させたい場合は,バウンディングボックスを表示するために箱を使います. ビューワー上に箱を表示させることはとてもかんたんです.
このようにしてください.
//自分の設定したい箱の位置と姿勢をどこかから持ってきてください
float x, y, z;
Eigen::Matrix3f rotational_matrix;
//箱の位置を設定
Eigen::Vector3f cube_position(x, y, z);
//箱の姿勢を設定
Eigen::Quaternionf quat(rotational_matrix);
//Cubeをビューワーに設定
viwer.addCube(position, quat, x_length, y_length, z_length, "cube_name");
ここで,x_length,y_length,z_lengthは各辺の長さで,単位はmです この他にもaddCube関数は下記のようなバージョンもあります.
viewer.addCube(position, quat, x_max_point, x_min_point, y_max_point, y_min_point, z_max_point, z_min_point, "cube_name");
こちらのほうが引数の設定がわかりやすいかもしれませんね.