【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

基于参数模型滤波,更准确的说,是依赖于某一个参数方程的滤波。比如说,ax+by+cz+d=0,这个时候只要知道a、b、c、d四个数值,其实就可以确定这个平面了。不过这个方法对参数要求较高,使用场景有一定的限制。原来的代码链接在这,https://pcl.readthedocs.io/projects/tutorials/en/latest/project_inliers.html#project-inliers

1、准备project_inliers.cpp文件

#include <iostream>
#include <pcl/point_cloud.h> // for PointCloud
#include <pcl/point_types.h>
#include <pcl/ModelCoefficients.h>
#include <pcl/filters/project_inliers.h>intmain ()
{pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_projected (new pcl::PointCloud<pcl::PointXYZ>);// Fill in the cloud datacloud->width  = 5;cloud->height = 1;cloud->points.resize (cloud->width * cloud->height);for (auto& point: *cloud){point.x = 1024 * rand () / (RAND_MAX + 1.0f);point.y = 1024 * rand () / (RAND_MAX + 1.0f);point.z = 1024 * rand () / (RAND_MAX + 1.0f);}std::cerr << "Cloud before projection: " << std::endl;for (const auto& point: *cloud)std::cerr << "    " << point.x << " "<< point.y << " "<< point.z << std::endl;// Create a set of planar coefficients with X=Y=0,Z=1pcl::ModelCoefficients::Ptr coefficients (new pcl::ModelCoefficients ());coefficients->values.resize (4);coefficients->values[0] = coefficients->values[1] = 0;coefficients->values[2] = 1.0;coefficients->values[3] = 0;// Create the filtering objectpcl::ProjectInliers<pcl::PointXYZ> proj;proj.setModelType (pcl::SACMODEL_PLANE);proj.setInputCloud (cloud);proj.setModelCoefficients (coefficients);proj.filter (*cloud_projected);std::cerr << "Cloud after projection: " << std::endl;for (const auto& point: *cloud_projected)std::cerr << "    " << point.x << " "<< point.y << " "<< point.z << std::endl;return (0);
}

2、准备CMakeLists.txt文件

cmake_minimum_required(VERSION 3.5 FATAL_ERROR)project(project_inliers)find_package(PCL 1.2 REQUIRED)include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})add_executable (project_inliers project_inliers.cpp)
target_link_libraries (project_inliers ${PCL_LIBRARIES})

3、生成sln文件,准备编译

4、运行project_inliers.exe

可以关注一下,滤波后z轴方向数据的变化。

3d激光雷达开发(基于参数模型的滤波)相关推荐

  1. 3d激光雷达开发(入门)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 大约在2017年的时候,学习百度的apollo系统的时候,就知道3d激光雷达了.3d激光雷达和普 ...

  2. 3d激光雷达开发(pcl安装和使用)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 之前讨论过,目前3d激光雷达这块,算法部分用的最多的就是pcl库.网上很多教程都是讲pcl在li ...

  3. 3d激光雷达开发(基于统计滤波)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 基于统计方法的滤波其实是比较好理解的.也就是说,在一个局部范围内,选择距离最近的几十个点,要求他 ...

  4. 3d激光雷达开发(voxel滤波)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 有一种滤波方法,被称之为基于体素网格的下采样滤波.虽然名字听上去有点拗口,其实功能并不复杂.它的 ...

  5. 3d激光雷达开发(从halcon看点云pcl库)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 做点云开发的,很少有不知道pcl库的,这一点就有点像做数字图像处理的,很少有不知道opencv的 ...

  6. 3d激光雷达开发(法向量预测)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 法向量在3d点云当中扮演很重要的一个角色.一个三维数据点的特征,不仅和它自己有关,还和它周围的点 ...

  7. 3d激光雷达开发(多雷达标定)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 有过camera开发经验的朋友都知道,camera有两种标定.一种是内参标定,主要是标定切向畸变 ...

  8. 3d激光雷达开发(平面映射)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 3d点云当中,一个经常用到的方法就是先找到一个平面,然后将点映射到平面上面.这个里面用到的数据结 ...

  9. 3d激光雷达开发(圆柱分割)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 和平面分割一样,pcl也支持圆柱分割.使用的方法和平面分割也差不多,都是基于ransac的基本原 ...

最新文章

  1. c++ pipe 同步 互斥_数一数Linux中有多少种线程同步策略-『Linux 源码解析(二)』...
  2. 【深度学习】模式识别技术探索之决策树(Decision tree)
  3. 火力发电厂与变电站设计防火标准_火力发电厂与变电站设计防火规范
  4. Windows下使用Notepad++修改二进制文件,exe可执行文件
  5. 启明云端分享| RK3568核心板到底有哪些吸引眼球的地方呢
  6. Linux常用命令之wget
  7. 基础算法 —— 高精度计算 —— Java 大数类
  8. Java中的MD5加密
  9. 通用安防摄像机通过RTSP转RTMP推流进行H5(RTMP/HLS)直播的方案
  10. word文档 文献尾注修改样式
  11. 非负数的和与个数c语言编程,C语言习题中,编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数之和...
  12. 关于ADXL345的资料的汇总
  13. 计算机被填充背景花束纹理在那,为艺术字设置纹理填充的两种方法
  14. android apk下载完成后调用安装
  15. CTF Crypto/MISC 在线工具网站
  16. 383-基于kintex UltraScale XCKU040的双路QSFP+光纤PCIe 卡
  17. 《Microduino实战》——2.1 Microduino系列产品
  18. 配置freeglut和glew
  19. javaWeb登录验证码第一次验证失败,刷新验证码后验证成功问题
  20. 《海盗来了》疯狂游戏,如何用数据抢占小游戏市场

热门文章

  1. 收集一些常用的CDN链接!无需下载快速使用!
  2. BZOJ 4310 二分+SA+RMQ
  3. 网站集成QQ登录功能
  4. eclipse新建tomcat server但是总是报404的解决方法
  5. eclips3.4.2 添加 tomcat6.0不可用解决——重新搞
  6. Markup.h 和 Markup.cpp 文件(下一篇)内容,直接复制创建就行了
  7. 为什么Java中只有值传递
  8. Redis源码解析(1)——源码目录介绍
  9. ajax提交时“加载中”提示的处理方法
  10. vim正则表示式替换