void main() { // viewerを作る pcl::visualization::CloudViewer viewer( "OpenNI Viewer" ); // データ更新のコールバック関数 boost::function<void (const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr&)> f = [&viewer](const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr &cloud) { if (!viewer.wasStopped()) { pcl::PointCloud<pcl::PointXYZRGB> segmented_cloud( *cloud ); segmentate( segmented_cloud, 0.01 ); viewer.showCloud( segmented_cloud.makeShared() ); } }; // OpenNIの入力を作る pcl::Grabber* interface = new pcl::OpenNIGrabber(); interface->registerCallback( f ); interface->start(); while ( !viewer.wasStopped() ) { Sleep( 0 ); } interface->stop(); }
// Init components void UserForm::init() { connect(m_ui->actionQuit, SIGNAL(triggered()), this, SLOT(close())); logicCore = new LogicCore(this); connect(m_ui->actionPreprocessing,SIGNAL(triggered()), logicCore, SLOT(preprocess())); connect(m_ui->actionSegmentation,SIGNAL(triggered()), logicCore, SLOT(segmentate())); connect(m_ui->actionRecognition,SIGNAL(triggered()), logicCore, SLOT(classify())); connect(m_ui->tbSaveResultsAs,SIGNAL(clicked()), logicCore, SLOT(saveResults())); }