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;…

GO - 标准库

go - 标准库 标准库参考地址 https://golang.google.cn/pkg/标准库说明 数据处理 encoding/&#xff08;例如&#xff1a;encoding/json、encoding/xml、encoding/base64&#xff09; hash/&#xff08;例如&#xff1a;hash/adler32、hash/crc32、hash/fnv&#xff09; byt…

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…

【备忘录】MySQL 8.3 中删除的功能

MySQL 8.3 已经发布好长一段时间了&#xff0c;在做版本升级或新部署时务必坚持在8.3版本已经删除的一些配置参数&#xff0c;少走弯路。 以下项目已过时并已在 MySQL 8.3 中删除。如果显示替代方案&#xff0c;则应更新应用程序以使用它们。应修改使用 MySQL 8.3 中删除的功能…

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.

python单位换算例子

之前写的代码就是脑子想到啥就写啥&#xff0c;一堆if--slse 确实增加代码量&#xff0c;还能让领导觉得干得非常卖力。但是都是硬编码&#xff0c;代码简直无法直视&#xff0c;今天学了一个比较简单的方法&#xff0c;还把数据结构进行了简单的理解&#xff0c;照着写了下程序…

Qt实现Kermit协议(六)

3 实现 3.5 KermitFileRecver 该模块实现了Kermit异步接收文件功能。 3.5.1 KermitFileRecver定义 class QSerialPort; class KermitFileRecver : public QObject {Q_OBJECT public:explicit KermitFileRecver(QSerialPort *serial, QObject *parent nullptr);~KermitFile…

完全二叉树的权值

一道很简单的模拟题但还是有要注意的地方没层要读入的数据量是2的倍数但是最后一层会有不满的使用里面那层循环要写i和j两种判断而且每次加完一层就要比一次所以还要一ii循环但是又不让它增加因为i是读入数据才增加 #include<bits/stdc.h> using namespace std; long lo…

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;组成一套道路运输企业主要负责人全真模拟考…

【测试开发学习历程】python推导式

Python当 目录 1 列表推导式 2 字典推导式 3 集合推导式 4 生成器推导式 中有如下的推导式&#xff1a; 列表推导式 字典推导式 集合推导式 生成器推导式 推导式的作用是可以快速地生成一个列表、字典或者集合&#xff0c;同时简化代码。 下面我们来介绍一下python中…

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

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