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

3d点云当中,一个经常用到的方法就是先找到一个平面,然后将点映射到平面上面。这个里面用到的数据结构是ProjectInliers。参考的代码链接在这,https://blog.csdn.net/weixin_42291376/article/details/106154329,代码和参数稍微做了一些修改

1、准备pcl.cpp文件

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/ModelCoefficients.h>
#include <pcl/filters/project_inliers.h>
#include<stdio.h>int
main(int argc, char** argv)
{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 (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);}std::cerr << "Cloud before projection: " << 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;// 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] = 0;coefficients->values[1] = 1;coefficients->values[2] = 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 (size_t i = 0; i < cloud_projected->points.size(); ++i)std::cerr << "    " << cloud_projected->points[i].x << " "<< cloud_projected->points[i].y << " "<< cloud_projected->points[i].z << std::endl;system("pause");return (0);
}

2、再准备CMakeLists.txt

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

3、生成sln工程,准备编译

4、运行exe文件

直接运行pcl.exe即可,

注意这里面y轴数据发生了改变,当然映射的平面可以是分割出来的任意平面。

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激光雷达开发(从halcon看点云pcl库)

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

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

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

  6. 3d激光雷达开发(ransac的思想)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 前面我们写了平面分割(https://blog.csdn.net/feixiaoxing/art ...

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

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

  8. 3d激光雷达开发(ndt匹配)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 除了icp匹配之外,ndt匹配也是使用比较多的一种方法.相比较icp而言,ndt匹配花的时间要少 ...

  9. 3d激光雷达开发(icp匹配)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 所谓匹配,其实就是看两个点云数据里面,哪些关键点是一样的.这样就可以把一个点云移动到另外合适的位 ...

最新文章

  1. 程序员加班崩溃,过路外卖小哥主动帮忙改代码,网友直呼太暖了!
  2. libsvm使用心得
  3. Cordova build构建常见问题整理
  4. C 网络库都干了什么?
  5. 用标准C语言初始化线性表,跪求:线性表初始化函数的详细解释(c语言)
  6. ASP.NET Core 项目配置 ( Startup ) - ASP.NET Core 基础教程 - 简单教程,简单编程
  7. Linux命令行上传本地文件到服务器 、 下载服务器文件到本地
  8. default value mysql_Mysql Field * doesn't have a default value解决方法
  9. 高级项目管理师/高项考试十大管理论文模板
  10. 亲完如何进行下一步_接吻进阶指南,提出接吻,亲吻技巧,约会后怎么接吻
  11. 服务器ip每天自动更换,IP地址经常更换,自动获取的IP上不了网怎么办?
  12. ie浏览器通过ActiveX控件获取本机macip(附带批处理一键开启)
  13. 个人商业模式,如何让自己变得值钱
  14. nachos学习笔记(一)
  15. 软件测试工程师这个岗位职责是什么?具体都需要干什么?
  16. canvas动画粒子效果分享,可以做背景,超级好看
  17. 【转】关于第三方支付,看这篇文章就够了!
  18. http状态码大全,从100-505状态码详情
  19. Mac App图标制作工具——img2icns
  20. wps 模拟分析 规划求解_WPS表格怎么进行规划求解运算?

热门文章

  1. centos 安装 freeswitch,开启与关闭
  2. PHP 程序员的技术成长规划
  3. Android数据存储(3):External Storage
  4. 即时通信软件开发的年轻开发者曾注意到
  5. 最简单的的让应用软件不随着系统重装而重装的方法
  6. 【转】解决win7下重装winXP 系统启动选择菜单消失 问题
  7. Tomcat修改源码,重新编译
  8. 数据库切换为mysql中出现的问题:Error loading MySQLdb module.
  9. 2019.1.21jQuery
  10. JAVA多线程--线程阻塞与唤醒