2011年8月21日日曜日

Point Cloud Libraryを試す(その2:ビューワ編)

前回ファイルの書き込みをしました。
今回は読み込みを飛ばして可視化をします。
可視化できないと何をやっているのかさっぱりなので。

http://pointclouds.org/documentation/tutorials/cloud_viewer.php#cloud-viewer


前回のコードを少し書き換えて、ビューワのコードをいれてみました。

  1. #include <iostream>  
  2. #include <pcl/io/pcd_io.h>  
  3. #include <pcl/point_types.h>  
  4. #include <pcl/visualization/cloud_viewer.h> // 追加  
  5.   
  6. int  
  7.   main (int argc, char** argv)  
  8. {  
  9.   pcl::PointCloud<pcl::PointXYZ> cloud;  
  10.     
  11.   // Fill in the cloud data  
  12.   cloud.width    = 5;  
  13.   cloud.height   = 1;  
  14.   cloud.is_dense = false;  
  15.   cloud.points.resize (cloud.width * cloud.height);  
  16.   
  17.   for (size_t i = 0; i < cloud.points.size (); ++i)  
  18.   {  
  19.     cloud.points[i].x = 1024 * rand () / (RAND_MAX + 1.0);  
  20.     cloud.points[i].y = 1024 * rand () / (RAND_MAX + 1.0);  
  21.     cloud.points[i].z = 1024 * rand () / (RAND_MAX + 1.0);  
  22.   }  
  23.   // 追加  
  24.   pcl::visualization::CloudViewer viewer ("Simple Cloud Viewer");  
  25.   viewer.showCloud (cloud.makeShared());  
  26.   while (!viewer.wasStopped ()) {  
  27.   }  
  28.   
  29.   return (0);  
  30. }  

CMakeLists.txtは以下のような感じ。

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)

project(pcd_write)

find_package(PCL 1.1 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

add_executable (pcd_write pcd_write.cpp)
add_executable (pcl_view_test pcl_view_test.cpp)

target_link_libraries (pcd_write ${PCL_COMMON_LIBRARIES} ${PCL_IO_LIBRARIES})
target_link_libraries (pcl_view_test ${PCL_LIBRARIES})

$ ./pcl_view_test
とすると以下のようなビューワが立ち上がります。
マウスを駆使してうまく表示します。ホイールで縮小するとよさそうです。


見えないでしょうがちっちゃい5つの白い点が作成したポイントクラウドです。

ためしに点を100x100くらいにしてみます。widthとheightを100にしてみます。

おー、ポイントクラウドって感じですね。

公式のチュートリアルはこちらです。
もう少し詳しいので必要になったら参照したいと思います。
http://pointclouds.org/documentation/tutorials/cloud_viewer.php#cloud-viewer

2 件のコメント:

  1. 最近pclの存在を知った者です。
    こうゆう記事を書いてもらえるととても助かります。
    今後もいい記事をお願いします!!

    返信削除
  2. しばらくPCLやります。なんかリクエストあればやるかも。

    返信削除