void viz_cb (pcl::visualization::PCLVisualizer& viz) { mtx_.lock (); if (!cloud_ || !normals_) { mtx_.unlock (); return; } CloudConstPtr temp_cloud; pcl::PointCloud<pcl::Normal>::Ptr temp_normals; temp_cloud.swap (cloud_); //here we set cloud_ to null, so that temp_normals.swap (normals_); mtx_.unlock (); if (!viz.updatePointCloud (temp_cloud, "OpenNICloud")) { viz.addPointCloud (temp_cloud, "OpenNICloud"); viz.resetCameraViewpoint ("OpenNICloud"); } // Render the data if (new_cloud_) { viz.removePointCloud ("normalcloud"); viz.addPointCloudNormals<PointType, pcl::Normal> (temp_cloud, temp_normals, 100, 0.05f, "normalcloud"); new_cloud_ = false; } }
void colorDetector::showDetectedCloud(pcl::visualization::PCLVisualizer& viewer, std::string cloud_name) { pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZRGBA> green(_detectedCloud, 0, 255,0); viewer.removePointCloud(cloud_name); viewer.addPointCloud<RefPointType>(_detectedCloud, green, cloud_name); }
void viz_cb (pcl::visualization::PCLVisualizer& viz) { boost::mutex::scoped_lock lock (mtx_); if (!cloud_) { boost::this_thread::sleep(boost::posix_time::seconds(1)); return; } CloudConstPtr temp_cloud; temp_cloud.swap (cloud_); //here we set cloud_ to null, so that if (!viz.updatePointCloud (temp_cloud, "OpenNICloud")) { viz.addPointCloud (temp_cloud, "OpenNICloud"); viz.resetCameraViewpoint ("OpenNICloud"); } // Render the data if (new_cloud_ && normals_) { viz.removePointCloud ("normalcloud"); viz.addPointCloudNormals<PointType, pcl::Normal> (temp_cloud, normals_, 200, 0.05, "normalcloud"); new_cloud_ = false; } }
void viz_cb (pcl::visualization::PCLVisualizer& viz) { if (!cloud_ || !new_cloud_) { boost::this_thread::sleep (boost::posix_time::milliseconds (1)); return; } { boost::mutex::scoped_lock lock (mtx_); FPS_CALC ("visualization"); CloudPtr temp_cloud; temp_cloud.swap (cloud_pass_); if (!viz.updatePointCloud (temp_cloud, "OpenNICloud")) { viz.addPointCloud (temp_cloud, "OpenNICloud"); viz.resetCameraViewpoint ("OpenNICloud"); } // Render the data if (new_cloud_ && cloud_hull_) { viz.removePointCloud ("hull"); viz.addPolygonMesh<PointType> (cloud_hull_, vertices_, "hull"); } new_cloud_ = false; } }
void viz_cb (pcl::visualization::PCLVisualizer& viz) { static bool first_time = true; double psize = 1.0,opacity = 1.0,linesize =1.0; std::string cloud_name ("cloud"); boost::mutex::scoped_lock l(m_mutex); if (new_cloud) { //typedef pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGBNormal> ColorHandler; typedef pcl::visualization::PointCloudColorHandlerGenericField <pcl::PointXYZRGBNormal> ColorHandler; //ColorHandler Color_handler (normal_cloud); ColorHandler Color_handler (normal_cloud,"curvature"); if (!first_time) { viz.getPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_LINE_WIDTH, linesize, cloud_name); viz.getPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_OPACITY, opacity, cloud_name); viz.getPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, psize, cloud_name); //viz.removePointCloud ("normalcloud"); viz.removePointCloud ("cloud"); } else first_time = false; //viz.addPointCloudNormals<pcl::PointXYZRGBNormal> (normal_cloud, 139, 0.1, "normalcloud"); viz.addPointCloud<pcl::PointXYZRGBNormal> (normal_cloud, Color_handler, std::string("cloud"), 0); viz.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_LINE_WIDTH, linesize, cloud_name); viz.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_OPACITY, opacity, cloud_name); viz.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, psize, cloud_name); new_cloud = false; } }
/* \brief remove dynamic objects from the viewer * */ void clearView() { //remove cubes if any vtkRenderer *renderer = viz.getRenderWindow()->GetRenderers()->GetFirstRenderer(); while (renderer->GetActors()->GetNumberOfItems() > 0) renderer->RemoveActor(renderer->GetActors()->GetLastActor()); //remove point clouds if any viz.removePointCloud("cloud"); }
void viz_cb (pcl::visualization::PCLVisualizer& viz) { static bool first_time = true; boost::mutex::scoped_lock l(m_mutex); if (new_cloud) { //typedef pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGBNormal> ColorHandler; typedef pcl::visualization::PointCloudColorHandlerGenericField <pcl::PointXYZRGBNormal> ColorHandler; ColorHandler Color_handler (normal_cloud,"curvature"); if (!first_time) { viz.removePointCloud ("normalcloud"); viz.removePointCloud ("cloud"); } else first_time = false; viz.addPointCloudNormals<pcl::PointXYZRGBNormal> (normal_cloud, 200, 0.1, "normalcloud"); viz.addPointCloud<pcl::PointXYZRGBNormal> (normal_cloud, Color_handler, std::string("cloud"), 0); new_cloud = false; } }
void viewerUpdate(pcl::visualization::PCLVisualizer& viewer) { std::stringstream ss; ss << "Rawlog entry: " << rawlogEntry; viewer.removeShape ("text", 0); viewer.addText (ss.str(), 10,50, "text", 0); static mrpt::system::TTimeStamp last_time = INVALID_TIMESTAMP; { // Mutex protected std::lock_guard<std::mutex> lock(td_cs); if (td.new_timestamp!=last_time) { last_time = td.new_timestamp; viewer.removePointCloud("cloud", 0); viewer.addPointCloud (td.new_cloud,"cloud",0); viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3.0); const size_t N = td.new_cloud->size(); std::cout << "Showing new point cloud of size=" << N << std::endl; static bool first = true; if (N && first) { first = false; //viewer.resetCameraViewpoint("cloud"); } #if 0 std::cout << mrpt::format( "camera: clip = %f %f\n" " focal = %f %f %f\n" " pos = %f %f %f\n" " view = %f %f %f\n", viewer.camera_.clip[0],viewer.camera_.clip[1], viewer.camera_.focal[0],viewer.camera_.focal[1],viewer.camera_.focal[2], viewer.camera_.pos[0],viewer.camera_.pos[1],viewer.camera_.pos[2], viewer.camera_.view[0],viewer.camera_.view[1],viewer.camera_.view[2]); #endif } } }
void viz_cb (pcl::visualization::PCLVisualizer& viz) { boost::mutex::scoped_lock lock (mtx_); if (!keypoints_ && !cloud_) { boost::this_thread::sleep(boost::posix_time::seconds(1)); return; } FPS_CALC ("visualization"); viz.removePointCloud ("raw"); pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGBA> color_handler (cloud_); viz.addPointCloud<pcl::PointXYZRGBA> (cloud_, color_handler, "raw"); if (!viz.updatePointCloud<pcl::PointXYZ> (keypoints_, "keypoints")) { viz.addPointCloud<pcl::PointXYZ> (keypoints_, "keypoints"); viz.setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 5.0, "keypoints"); viz.resetCameraViewpoint ("keypoints"); } }
void visualizeCurve (ON_NurbsCurve &curve, ON_NurbsSurface &surface, pcl::visualization::PCLVisualizer &viewer) { pcl::PointCloud<pcl::PointXYZRGB>::Ptr curve_cloud (new pcl::PointCloud<pcl::PointXYZRGB>); pcl::on_nurbs::Triangulation::convertCurve2PointCloud (curve, surface, curve_cloud, 4); for (std::size_t i = 0; i < curve_cloud->size () - 1; i++) { pcl::PointXYZRGB &p1 = curve_cloud->at (i); pcl::PointXYZRGB &p2 = curve_cloud->at (i + 1); std::ostringstream os; os << "line" << i; viewer.removeShape (os.str ()); viewer.addLine<pcl::PointXYZRGB> (p1, p2, 1.0, 0.0, 0.0, os.str ()); } pcl::PointCloud<pcl::PointXYZRGB>::Ptr curve_cps (new pcl::PointCloud<pcl::PointXYZRGB>); for (int i = 0; i < curve.CVCount (); i++) { ON_3dPoint p1; curve.GetCV (i, p1); double pnt[3]; surface.Evaluate (p1.x, p1.y, 0, 3, pnt); pcl::PointXYZRGB p2; p2.x = float (pnt[0]); p2.y = float (pnt[1]); p2.z = float (pnt[2]); p2.r = 255; p2.g = 0; p2.b = 0; curve_cps->push_back (p2); } viewer.removePointCloud ("cloud_cps"); viewer.addPointCloud (curve_cps, "cloud_cps"); }
int main (int argc, char** argv) { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZ>); pcl::io::loadPCDFile (argv[1], *cloud); pcl::copyPointCloud( *cloud,*cloud_filtered); float i ; float j; float k; cv::namedWindow( "picture"); cvCreateTrackbar("X_limit", "picture", &a, 30, NULL); cvCreateTrackbar("Y_limit", "picture", &b, 30, NULL); cvCreateTrackbar("Z_limit", "picture", &c, 30, NULL); char last_c = 0; // pcl::visualization::PCLVisualizer viewer ("picture"); viewer.setBackgroundColor (0.0, 0.0, 0.5);//set backgroung according to the color of points pcl::PassThrough<pcl::PointXYZ> pass; while (!viewer.wasStopped ()) { pcl::copyPointCloud(*cloud_filtered, *cloud); i = 0.1*((float)a); j = 0.1*((float)b); k = 0.1*((float)c); // cout << "i = " << i << " j = " << j << " k = " << k << endl; pass.setInputCloud (cloud); pass.setFilterFieldName ("y"); pass.setFilterLimits (-j, j); pass.filter (*cloud); pass.setInputCloud (cloud); pass.setFilterFieldName ("x"); pass.setFilterLimits (-i, i); pass.filter (*cloud); pass.setInputCloud (cloud); pass.setFilterFieldName ("z"); pass.setFilterLimits (-k,k); pass.filter (*cloud); viewer.addPointCloud (cloud, "scene_cloud"); viewer.spinOnce (); viewer.removePointCloud("scene_cloud"); waitKey(10); } return 0; }
template <typename PointT> void tviewer::PointCloudObject<PointT>::removeDataFromVisualizer (pcl::visualization::PCLVisualizer& v) { v.removePointCloud (name_); }