Ubuntu 20.04.06 PCL C++学习记录(二十)

@[TOC]PCL中点云分割模块的学习

学习背景

参考书籍:《点云库PCL从入门到精通》以及官方代码PCL官方代码链接,,PCL版本为1.10.0,CMake版本为3.16

学习内容

基于颜色的区域增长细分

源代码及所用函数

源代码

#include<iostream>
#include<thread>//引入线程相关的类和函数,使得程序能够并发执行多个线程
#include<vector>
#include<pcl/point_types.h>
#include<pcl/io/pcd_io.h>
#include<pcl/search/search.h>
#include<pcl/search/kdtree.h>
#include<pcl/visualization/cloud_viewer.h>
#include<pcl/filters/filter_indices.h>//提供了一组用于对点云数据进行滤波和索引操作的工具和算法
#include<pcl/segmentation/region_growing_rgb.h>using namespace std::chrono_literals;int main()
{pcl::search::Search<pcl::PointXYZRGB>::Ptr tree(new pcl::search::KdTree<pcl::PointXYZRGB>);/******************************************读取文件****************************************/pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>);if (pcl::io::loadPCDFile<pcl::PointXYZRGB>("/home/jojo/PointCloud/region_growing_rgb_tutorial.pcd",*cloud) == -1){std::cout << "文件读取失败" << std::endl;return -1;}/**********************************************去除无效点**********************************/pcl::IndicesPtr indices(new std::vector<int>);pcl::removeNaNFromPointCloud(*cloud,*indices);/**********************************************基于颜色的区域增长细分*************************/pcl::RegionGrowingRGB<pcl::PointXYZRGB> reg;reg.setInputCloud (cloud);reg.setIndices (indices);reg.setSearchMethod (tree);reg.setDistanceThreshold(10);//设置距离阈值为 10,表示在区域生长过程中,两个点之间的欧氏距离小于等于 10 时,它们属于同一个区域reg.setPointColorThreshold(6);//设置点颜色阈值为 6,表示在区域生长过程中,两个点之间的颜色差异小于等于 6 时,它们属于同一个区域。//颜色差异通常使用欧氏距离度量,即 RGB 颜色空间中的距离。reg.setRegionColorThreshold(5);//设置区域颜色阈值为 5,表示在区域生长过程中,一个区域内所有点的平均颜色与种子点的颜色差异小于等于 5 时,该区域被认为是有效的。reg.setMinClusterSize (600);std::vector <pcl::PointIndices> clusters;reg.extract(clusters);pcl::PointCloud<pcl::PointXYZRGB>::Ptr colored_cloud = reg.getColoredCloud();pcl::visualization::CloudViewer viewer("Cluster Viewer");viewer.showCloud(colored_cloud);while (!viewer.wasStopped()){std::this_thread::sleep_for(100us);}return (0);}

CMakeLists.txt

cmake_minimum_required(VERSION 3.16 FATAL_ERROR)#指定CMake的最低版本要求为3.16
project(project)#设置项目名称
find_package(PCL 1.10 REQUIRED)#查找PCL库,要求版本为1.10或更高。
include_directories(${PCL_INCLUDE_DIRS})#将PCL库的头文件目录添加到包含路径中
link_directories(${PCL_LIBRARY_DIRS})#将PCL库的库文件目录添加到链接器搜索路径中。
add_definitions(${PCL_DEFINITIONS})#添加PCL库的编译器定义
add_executable (region_growing_rgb_segmentation region_growing_rgb_segmentation.cpp)
target_link_libraries (region_growing_rgb_segmentation ${PCL_LIBRARIES})#将PCL库链接到可执行文件目标。

运行结果

在这里插入图片描述

函数

补充内容

  • std::chrono_literals 是 C++11 引入的一个命名空间,它提供了一组字面量后缀,用于方便地表示时间段(duration)。这些字面量后缀可以与整数或浮点数一起使用,以指定时间段的大小。
    要使用 std::chrono_literals,需要在 C++ 代码中包含 头文件,并使用 using namespace std::chrono_literals; 语句将该命名空间引入当前作用域。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/800484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HIS系统是什么?一套前后端分离云HIS系统源码 接口技术RESTful API + WebSocket + WebService

HIS系统是什么&#xff1f;一套前后端分离云HIS系统源码 接口技术RESTful API WebSocket WebService 医院管理信息系统(全称为Hospital Information System)即HIS系统。 常规模版包括门诊管理、住院管理、药房管理、药库管理、院长查询、电子处方、物资管理、媒体管理等&…

Grafana告警(邮件)自定义模板配置

一年前给客户部署配置过grafana&#xff0c;告警配置也是用的原始的&#xff0c;客户在使用过程中只需要一些核心点信息&#xff0c;想要实现这个就需要用Grafana的自定义告警模板以及编辑邮件模板。 通知模板 模板信息的配置中查阅了相关资料&#xff0c;自己组装了一套&…

【IC前端虚拟项目】spyglass lint环境组织与lint清理

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 和上个虚拟项目的lint清理环节一样&#xff0c;关于spyglass的lint清理功能与流程还是大家通过各种资料去学习下就好啦。和之前不同的事&#xff0c;这次的虚拟项目里我把流程封装为Makefile&#xff0c;…

三流大学毕业,物流专业转行自述:“从月薪4K到现在月入2W+,我做到了哪些?”

我是25岁转行学python的。说实在&#xff0c;转行就是奔着挣钱去的。希望我的经历可以给想转行的朋友带来一点启发和借鉴。 先简单介绍下个人背景&#xff0c;三流大学毕业&#xff0c;物流专业&#xff0c;学习能力一般&#xff0c;没啥特别技能&#xff0c;反正就很普通的一…

C++ //练习 11.23 11.2.1节练习(第378页)中的map以孩子的姓为关键字,保存他们的名的vector,用multimap重写此map。

C Primer&#xff08;第5版&#xff09; 练习 11.23 练习 11.23 11.2.1节练习&#xff08;第378页&#xff09;中的map以孩子的姓为关键字&#xff0c;保存他们的名的vector&#xff0c;用multimap重写此map。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09;…

flutter 获取验证码倒计时组件封装

send_sms_btn.dart import dart:async;import package:flutter/material.dart; import package:get/get.dart;// 发送验证码 按钮 class SendSmsBtn extends StatefulWidget {final Future<bool> Function()? onTap;const SendSmsBtn({super.key,this.onTap,});overrid…

CS162 Operating System笔记

What is an Operating System? it’s typically a special layer of software that provides the application access to hardware resources.So.it’s convenient abs fractions of complex hardware devices.

FHE全同态加密简介

1. 何为FHE&#xff1f; FHE (Fully homomorphic encryption)&#xff1a; 是一种隐私技术&#xff0c;支持直接对密文进行计算&#xff0c;而无需对密文先解密再计算。即&#xff0c;任何第三方或云厂商&#xff0c;都可对敏感信息的密文进行处理&#xff0c;而无需访问密文内…

快速安装/升级/卸载Ascend配套软件包的

一、参考资料 配套MindSpore 昇腾软件安装指引&#xff08;23.0.RC3&#xff09; 快速安装CANN 二、安装Ascend配套软件包 1. Ascend配套软件包简介 Ascend配套软件包&#xff0c;包括&#xff1a;固件、驱动和CANN&#xff08;Compute Architecture for Neural Networks&…

近距离共享数字化实战经验,深挖数据价值赋能千行百业

近期&#xff0c;思迈特软件积极投身于金融、制造、零售、医疗等多个行业的线下活动中&#xff0c;深度解析行业趋势&#xff0c;分享BI数字化创新解决方案&#xff0c;并与客户及合作伙伴进行深入交流。通过这些活动&#xff0c;不仅展示了思迈特软件在各领域的先进技术和成果…

【数据结构】双向链表 C++

一、什么是双向链表 1、定义 双向链表也叫双链表&#xff0c;是链表的一种&#xff0c;它的每个数据结点中都有两个指针&#xff0c;分别指向直接后继和直接前驱。所以&#xff0c;从双向链表中的任意一个结点开始&#xff0c;都可以很方便地访问它的前驱结点和后继结点。 双…

fakebook-攻防世界

题目 先目录扫描一下 dirseach 打开flag.php是空白的 访问robots.txt,访问user.php.bak <?php class UserInfo { public $name ""; public $age 0; public $blog ""; public function __construct($name, $age, $blog) { …

2024年【道路运输企业主要负责人】报名考试及道路运输企业主要负责人证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 道路运输企业主要负责人报名考试根据新道路运输企业主要负责人考试大纲要求&#xff0c;安全生产模拟考试一点通将道路运输企业主要负责人模拟考试试题进行汇编&#xff0c;组成一套道路运输企业主要负责人全真模拟考…

vue vue3 日期时间组件分装,三种不同的效果

写在前面&#xff1a; 基于elementPlus前端组件库&#xff0c;实现了两种日期时间组件的自定义封装&#xff1a; 1.第一种&#xff0c;年月日 2.第二种&#xff0c;年月周日 3.第三种&#xff0c;年月日 一、年月日自定义组件的封装 实现效果&#xff1a; 参考链接&#xff1a…

VueDraggablePlus 支持 Vue2 和 Vue3 的拖拽组件

官网&#xff1a;https://alfred-skyblue.github.io/vue-draggable-plus/

【大功率汽车大灯升压方案】LED恒流驱动芯片FP7208升压车灯调光应用,PWM内部转模拟,调光深度1%,无频闪顾虑,低亮无抖动

宝马X5前中排座椅宽大舒适&#xff0c;车厢内储物空间丰富。操控性能极佳&#xff0c;底盘稳扎精良。原车为氙气灯&#xff0c;其实宝马的氙气大灯配的比其他车型要好&#xff0c;照明效果是没得说的。但是不管什么灯久了都会出现光衰的情况。下面这辆宝马X5车灯已老化严重。 宝…

14届蓝桥杯省赛 C/C++ B组 T4 飞机降落 (DFS)

记录此题提醒自己&#xff0c;此类时间轴问题可以通过DFS解决 DFS不是能解决所有题吗 对于此题&#xff0c;我们将降落的飞机的个数和时间轴作为DFS的形参&#xff0c;这样可以节省手动回溯的过程。 并且在DFS的过程中我们要加入一些贪心策略&#xff0c;否则直接爆搜有可能搜…

yolov8安全帽检测项目开发(python开发,带有训练模型,可以重新训练,并有Pyqt5界面可视化)

不需要程序&#xff0c;只需要数据集的&#xff0c;想自己搭建模型训练的&#xff0c;可以免费下载&#xff08;积分已经设置为0&#xff09;&#xff1a;https://download.csdn.net/download/qq_40840797/89100918 1.项目介绍&#xff1a;&#xff08;视频运行链接&#xff1…

小米SU7会是年轻人第一台“保时米”吗?

2021年3月30日&#xff0c;小米创始人雷军在公开演讲中宣布造车&#xff0c;称 “小米汽车将是我人生中最后一次重大的创业项目&#xff0c;我愿意押上我人生所有积累的战绩和声誉&#xff0c;为小米汽车而战&#xff01;” 雷军表示未来十年&#xff0c;小米将投入100亿美元造…

YOLOV8注意力改进方法:DilateFormer多尺度空洞 Transformer(附改进代码)

原论文地址&#xff1a;原论文下载地址 即插即用的多尺度全局注意力机制 本文提出了一种新颖的多尺度空洞 Transformer&#xff0c;简称DilateFormer&#xff0c;以用于视觉识别任务。原有的 ViT 模型在计算复杂性和感受野大小之间的权衡上存在矛盾。众所周知&#xff0c;ViT…