当前位置: 首页 > news >正文

2016网站设计风格济南 网站建设

2016网站设计风格,济南 网站建设,怎么改网站模板,京东商城网页版这个文档显示了在滤波模型里面如何使用几个不同的方法来消除点云里面的异常。 第一步我们将使用一个环境消除滤波器来消除不满足环境条件的点云。然后我们将学会如何使用一个RadiusOutlierRemoval滤波器来消除在指定范围内没有达到指定数量邻居的点。 代码 #include iost…这个文档显示了在滤波模型里面如何使用几个不同的方法来消除点云里面的异常。 第一步我们将使用一个环境消除滤波器来消除不满足环境条件的点云。然后我们将学会如何使用一个RadiusOutlierRemoval滤波器来消除在指定范围内没有达到指定数量邻居的点。 代码 #include iostream #include pcl/point_types.h #include pcl/filters/radius_outlier_removal.h #include pcl/filters/conditional_removal.h int main (int argc, char** argv) { if (argc ! 2) { std::cerr please specify command line arg -r or -c std::endl; exit(0); } pcl::PointCloudpcl::PointXYZ::Ptr cloud (new pcl::PointCloudpcl::PointXYZ); pcl::PointCloudpcl::PointXYZ::Ptr cloud_filtered (new pcl::PointCloudpcl::PointXYZ); // Fill in the cloud data cloud-width 5; cloud-height 1; cloud-points.resize (cloud-width * cloud-height); for (size_t i 0; i cloud-points.size (); i) { cloud-points[i].x 1024 * rand () / (RAND_MAX 1.0f); cloud-points[i].y 1024 * rand () / (RAND_MAX 1.0f); cloud-points[i].z 1024 * rand () / (RAND_MAX 1.0f); } if (strcmp(argv[1], -r) 0){ pcl::RadiusOutlierRemovalpcl::PointXYZ outrem; // build the filter outrem.setInputCloud(cloud); outrem.setRadiusSearch(0.8); outrem.setMinNeighborsInRadius (2); // apply filter outrem.filter (*cloud_filtered); } else if (strcmp(argv[1], -c) 0){ // build the condition pcl::ConditionAndpcl::PointXYZ::Ptr range_cond (new pcl::ConditionAndpcl::PointXYZ ()); range_cond-addComparison (pcl::FieldComparisonpcl::PointXYZ::ConstPtr (new pcl::FieldComparisonpcl::PointXYZ (z, pcl::ComparisonOps::GT, 0.0))); range_cond-addComparison (pcl::FieldComparisonpcl::PointXYZ::ConstPtr (new pcl::FieldComparisonpcl::PointXYZ (z, pcl::ComparisonOps::LT, 0.8))); // build the filter pcl::ConditionalRemovalpcl::PointXYZ condrem (range_cond); condrem.setInputCloud (cloud); condrem.setKeepOrganized(true); // apply filter condrem.filter (*cloud_filtered); } else{ std::cerr please specify command line arg -r or -c std::endl; exit(0); } std::cerr Cloud before filtering: std::endl; for (size_t i 0; i cloud-points.size (); i) std::cerr cloud-points[i].x cloud-points[i].y cloud-points[i].z std::endl; // display pointcloud after filtering std::cerr Cloud after filtering: std::endl; for (size_t i 0; i cloud_filtered-points.size (); i) std::cerr cloud_filtered-points[i].x cloud_filtered-points[i].y cloud_filtered-points[i].z std::endl; return (0); } RadiusOutlierRemoval的背景 下面这个图片帮助我们可视化了RadiusOutlierRemoval滤波器所做的事情。用户指定了半径一定的一个圆圈。如果指定了圆圈中只有一个的会被去除那么黄色的点将被去除如果指定了圆圈中只有2个点的被去除那么绿色的将会被去除。 ConditionalRemoval背景 不满足环境的点将被除去 代码解释 下面的代码表示了运行该程序得输入2个参数-r代表了运行RadiusOutlierRemoval这个滤波器而-c代表了conditionRemoval这个滤波器 if (argc ! 2) { std::cerr please specify command line arg -r or -c std::endl; exit(0); } 下面的代码我们首先定义了PointCloud这个结构然后把它填满 pcl::PointCloudpcl::PointXYZ::Ptr cloud (new pcl::PointCloudpcl::PointXYZ); pcl::PointCloudpcl::PointXYZ::Ptr cloud_filtered (new pcl::PointCloudpcl::PointXYZ); // Fill in the cloud data cloud-width 5; cloud-height 1; cloud-points.resize (cloud-width * cloud-height); for (size_t i 0; i cloud-points.size (); i) { cloud-points[i].x 1024 * rand () / (RAND_MAX 1.0f); cloud-points[i].y 1024 * rand () / (RAND_MAX 1.0f); cloud-points[i].z 1024 * rand () / (RAND_MAX 1.0f); } 如果我们选的参数是-r就会执行下面这段代码 if (strcmp(argv[1], -r) 0){ pcl::RadiusOutlierRemovalpcl::PointXYZ outrem; // build the filter outrem.setInputCloud(cloud); outrem.setRadiusSearch(0.8); outrem.setMinNeighborsInRadius (2); // apply filter outrem.filter (*cloud_filtered); } 首先我们先创建RadiusOutlierRemoval这个滤波器类然后把它的参数进行设置并把它应用到我们的输入点云中。搜索半径被设置为0.8一个点要想被当做是这个点云里面的点必须保证在0.8cm这个半径内还存在别的2个点否则就会被去除。 对于ConditionalRemoval这个类用户必须指定-c这个命令 else if (strcmp(argv[1], -c) 0){ // build the condition pcl::ConditionAndpcl::PointXYZ::Ptr range_cond (new pcl::ConditionAndpcl::PointXYZ ()); range_cond-addComparison (pcl::FieldComparisonpcl::PointXYZ::ConstPtr (new pcl::FieldComparisonpcl::PointXYZ (z, pcl::ComparisonOps::GT, 0.0))); range_cond-addComparison (pcl::FieldComparisonpcl::PointXYZ::ConstPtr (new pcl::FieldComparisonpcl::PointXYZ (z, pcl::ComparisonOps::LT, 0.8))); // build the filter pcl::ConditionalRemovalpcl::PointXYZ condrem (range_cond); condrem.setInputCloud (cloud); condrem.setKeepOrganized(true); // apply filter condrem.filter (*cloud_filtered); } 首先我们创建了一个点在点云里面的环境。在这个例子里面我们将把2个比较加入到这个环境中比0:(GT)大的或者比0.8(LT)小的这两个比较。 在两种情况下上面的代码将会创建我们将要使用和设置相应的参数给滤波器类。 下面的代码输出了滤波前和滤波后的点云 std::cerr Cloud before filtering: std::endl; for (size_t i 0; i cloud-points.size (); i) std::cerr cloud-points[i].x cloud-points[i].y cloud-points[i].z std::endl; // display pointcloud after filtering std::cerr Cloud after filtering: std::endl; for (size_t i 0; i cloud_filtered-points.size (); i) std::cerr cloud_filtered-points[i].x cloud_filtered-points[i].y cloud_filtered-points[i].z std::endl; 我们可以使用这个 ./remove_outliers -c 或者这个 ./remove_outliers -r 下面是结果 Cloud before filtering: 0.352222 -0.151883 -0.106395 -0.397406 -0.473106 0.292602 -0.731898 0.667105 0.441304 -0.734766 0.854581 -0.0361733 -0.4607 -0.277468 -0.916762 Cloud after filtering: -0.397406 -0.473106 0.292602 -0.731898 0.667105 0.441304
http://www.zqtcl.cn/news/573353/

相关文章:

  • tomcat做网站做自媒体查找素材的网站
  • 信阳建设企业网站公司软件开发平台公司
  • 营销型网站建设营销型设计家官网视频
  • 部门网站建设目的加猛挣钱免费做网站软件
  • 洛阳制作网站哪家好wordpress是英文
  • dw里面怎么做网站轮播图网站建设分为多少模块
  • 国外互动网站wordpress设置用户头像
  • 重庆手机网站推广定做net创建网站之后怎么做
  • 网站仿静态做it的兼职网站
  • 建站用wordpress好吗hui怎么做网站
  • 从用户旅程角度做网站分析做网站还是做淘宝
  • 妇科医院网站优化服务商品牌型网站设计推荐
  • 西安网站制作排名网站建设对企业的帮助
  • lamp网站开发 pdf纯html5 网站
  • 白云区同和网站建设购物网站怎么建立
  • 公司制作网站需要espcms易思企业网站管理系统
  • 开发一个网站需要哪些步骤广西建设主管部门网站
  • 网站建设培训西安制作微信小程序开发
  • delphi 做直播网站wordpress 商务
  • 各大网站的软文怎么做wordpress教程菜鸟教程
  • 破解php网站后台账号密码wordpress二维码 插件下载
  • 石家庄哪里可以做网站做网站用的pm是啥
  • 租服务器网站有趣的设计网站
  • 建设部监理网站官网信阳市两学一做网站
  • 网站被攻击会影响收录么微信网站 影楼
  • 社区网站开发search搜索引擎
  • 章丘做网站哪家强原阳网站建设
  • 做网站前期构架图中国建设银行手机银行网站
  • tp5企业网站开发百度云青岛vi设计公司
  • 网站建设实验原理建站之星 discuz