3d激光雷达开发(基于参数模型的滤波)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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激光雷达开发(基于参数模型的滤波)相关推荐
- 3d激光雷达开发(入门)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 大约在2017年的时候,学习百度的apollo系统的时候,就知道3d激光雷达了.3d激光雷达和普 ...
- 3d激光雷达开发(pcl安装和使用)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 之前讨论过,目前3d激光雷达这块,算法部分用的最多的就是pcl库.网上很多教程都是讲pcl在li ...
- 3d激光雷达开发(基于统计滤波)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 基于统计方法的滤波其实是比较好理解的.也就是说,在一个局部范围内,选择距离最近的几十个点,要求他 ...
- 3d激光雷达开发(voxel滤波)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 有一种滤波方法,被称之为基于体素网格的下采样滤波.虽然名字听上去有点拗口,其实功能并不复杂.它的 ...
- 3d激光雷达开发(从halcon看点云pcl库)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 做点云开发的,很少有不知道pcl库的,这一点就有点像做数字图像处理的,很少有不知道opencv的 ...
- 3d激光雷达开发(法向量预测)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 法向量在3d点云当中扮演很重要的一个角色.一个三维数据点的特征,不仅和它自己有关,还和它周围的点 ...
- 3d激光雷达开发(多雷达标定)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 有过camera开发经验的朋友都知道,camera有两种标定.一种是内参标定,主要是标定切向畸变 ...
- 3d激光雷达开发(平面映射)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 3d点云当中,一个经常用到的方法就是先找到一个平面,然后将点映射到平面上面.这个里面用到的数据结 ...
- 3d激光雷达开发(圆柱分割)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 和平面分割一样,pcl也支持圆柱分割.使用的方法和平面分割也差不多,都是基于ransac的基本原 ...
最新文章
- c++ pipe 同步 互斥_数一数Linux中有多少种线程同步策略-『Linux 源码解析(二)』...
- 【深度学习】模式识别技术探索之决策树(Decision tree)
- 火力发电厂与变电站设计防火标准_火力发电厂与变电站设计防火规范
- Windows下使用Notepad++修改二进制文件,exe可执行文件
- 启明云端分享| RK3568核心板到底有哪些吸引眼球的地方呢
- Linux常用命令之wget
- 基础算法 —— 高精度计算 —— Java 大数类
- Java中的MD5加密
- 通用安防摄像机通过RTSP转RTMP推流进行H5(RTMP/HLS)直播的方案
- word文档 文献尾注修改样式
- 非负数的和与个数c语言编程,C语言习题中,编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数之和...
- 关于ADXL345的资料的汇总
- 计算机被填充背景花束纹理在那,为艺术字设置纹理填充的两种方法
- android apk下载完成后调用安装
- CTF Crypto/MISC 在线工具网站
- 383-基于kintex UltraScale XCKU040的双路QSFP+光纤PCIe 卡
- 《Microduino实战》——2.1 Microduino系列产品
- 配置freeglut和glew
- javaWeb登录验证码第一次验证失败,刷新验证码后验证成功问题
- 《海盗来了》疯狂游戏,如何用数据抢占小游戏市场
热门文章
- 收集一些常用的CDN链接!无需下载快速使用!
- BZOJ 4310 二分+SA+RMQ
- 网站集成QQ登录功能
- eclipse新建tomcat server但是总是报404的解决方法
- eclips3.4.2 添加 tomcat6.0不可用解决——重新搞
- Markup.h 和 Markup.cpp 文件(下一篇)内容,直接复制创建就行了
- 为什么Java中只有值传递
- Redis源码解析(1)——源码目录介绍
- ajax提交时“加载中”提示的处理方法
- vim正则表示式替换