PointCloudConsortium > PCCブログ
PCL、3D関連の情報をブログ形式で発信します。
#include "stdafx.h" #include <pcl/io/openni_grabber.h> #include <pcl/visualization/cloud_viewer.h> class SimpleOpenNIViewer { public: SimpleOpenNIViewer () : viewer ("PCL OpenNI Viewer") {} void cloud_cb_ (const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr &cloud) { if (!viewer.wasStopped()) viewer.showCloud (cloud); } void run () { pcl::Grabber* interface = new pcl::OpenNIGrabber(); boost::function<void (const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr&)> f = boost::bind (&SimpleOpenNIViewer::cloud_cb_, this, _1); interface->registerCallback (f); interface->start (); while (!viewer.wasStopped()) { boost::this_thread::sleep (boost::posix_time::seconds (1)); } interface->stop (); } pcl::visualization::CloudViewer viewer; }; int main () { SimpleOpenNIViewer v; v.run (); return 0; }
<2>PCDデータ保存用のコードを追加
#include "stdafx.h" #include <pcl/io/openni_grabber.h> #include <pcl/visualization/cloud_viewer.h> #include <pcl/io/pcd_io.h> //pcd_io.hをインクルード class SimpleOpenNIViewer { public: SimpleOpenNIViewer () : viewer ("PCL OpenNI Viewer") {} void cloud_cb_ (const pcl::PointCloud<pcl::PointXYZRGBA>::ConstPtr &cloud) { if (!viewer.wasStopped()) viewer.showCloud (cloud); //--------------------------------------------「S」キーを押すとPCDデータを保存 if(GetAsyncKeyState('S')){ pcl::io::savePCDFileASCII ("保存先のパス/pcd_data.pcd" , *cloud); } } void run () { pcl::Grabber* interface = new pcl::OpenNIGrabber(); boost::function<void (const pcl::PointCloud<pcl::PointXYZRGBA>::ConstPtr&)> f = boost::bind (&SimpleOpenNIViewer::cloud_cb_, this, _1); interface->registerCallback (f); interface->start (); while (!viewer.wasStopped()) { boost::this_thread::sleep (boost::posix_time::seconds (1)); } interface->stop (); } pcl::visualization::CloudViewer viewer; }; int main () { SimpleOpenNIViewer v; v.run (); return 0; }上記コードの5行目に「pcd_io.h」のインクルードを指定。
マグネットインダストリー
西内伸太郎
2014年8月7日
PCL関連ブログ
・MeshLabで点群メッシュ化の際に色情報をテクスチャ画像にする
・Point Cloud Libraryについて②「PCLの概要」
・Point Cloud Library について ①「PCLの登場の経緯」
本コンソーシアムに関するお問合せ、PCL・3D関連のご相談はお問合せフォームよりご連絡ください。