[C++][pcl]pcl安装后测试代码3
测试环境:
vs2019
pcl==1.12.1
代码:
#include<iostream>
#include <thread>#include <pcl/common/common_headers.h>
#include <pcl/features/normal_3d.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/console/parse.h>
#include <boost/current_function.hpp>using namespace pcl;int main(int argc, char** argv)
{// 1. 创建和设置可视化窗口std::string strWinName = "3D Viewer", strWinTitle = "Point Cloud Viewer";int scnWidth = 1024, scnHeight = 800;visualization::PCLVisualizer::Ptr viewer(new visualization::PCLVisualizer(strWinName));viewer->setWindowName(strWinTitle);viewer->initCameraParameters(); // set camera before set sizeviewer->setPosition(0, 0);viewer->setSize(scnWidth, scnHeight);viewer->setShowFPS(false);// viewportsint vMenu(0), v1(0), v2(0);viewer->createViewPort(0.0, 0.0, 1.0, 0.2, vMenu); // used as interfaceviewer->createViewPort(0.0, 0.2, 0.5, 1.0, v1);viewer->createViewPort(0.5, 0.2, 1.0, 1.0, v2);// Background Colorviewer->setBackgroundColor(0.8, 0.8, 0.8, vMenu); // light greyviewer->setBackgroundColor(0.1, 0.1, 0.1, v1); // dark greyviewer->setBackgroundColor(0.2, 0.2, 0.2, v2); // dark grey// camerasviewer->createViewPortCamera(v1);viewer->createViewPortCamera(v2);double pos[3] = { 6,0,0 }; // camera at X-axisdouble foc[3] = { 0,0,0 }; // viewpoint at orgindouble up[3] = { 0,0,1 }; // up is Z-axisviewer->setCameraPosition(pos[0], pos[1], pos[2], foc[0], foc[1], foc[2], up[0], up[1], up[2]);// check cameras//std::vector<visualization::Camera> cams;//viewer->getCameras(cams);// coordinatesviewer->addCoordinateSystem(1.0, "ref_v1", v1);viewer->addCoordinateSystem(1.0, "ref_v2", v2);// 2. 创建点云数据和添加点云。PointCloud<PointXYZ>::Ptr cloud_ptr(new PointCloud<PointXYZ>);PointCloud<PointXYZRGB>::Ptr cloud_color_ptr(new PointCloud<PointXYZRGB>);std::uint8_t r(255), g(15), b(15);for (float z = -1.0; z <= 1.0; z += 0.05){for (float angle = 0.0; angle <= 360.0; angle += 5.0){pcl::PointXYZ basic_point;basic_point.x = 0.5 * std::cos(pcl::deg2rad(angle));basic_point.y = sinf(pcl::deg2rad(angle));basic_point.z = z;cloud_ptr->points.push_back(basic_point); // 将每个点输入点云pcl::PointXYZRGB point;point.x = basic_point.x;point.y = basic_point.y;point.z = basic_point.z;std::uint32_t rgb = (static_cast<std::uint32_t>(r) << 16 |static_cast<std::uint32_t>(g) << 8 | static_cast<std::uint32_t>(b));point.rgb = *reinterpret_cast<float*>(&rgb);cloud_color_ptr->points.push_back(point); // 将每个点输入点云}if (z < 0.0){r -= 12; // light red at -|z| g += 12; // light green at 0}else{g -= 12; // light green at 0b += 12; // light blue at +|z|}}cloud_ptr->width = cloud_ptr->size(); // 无规则点云的width为点数cloud_ptr->height = 1;cloud_color_ptr->width = cloud_color_ptr->size(); // 无规则点云的width为点数cloud_color_ptr->height = 1;bool ret = viewer->addPointCloud<PointXYZ>(cloud_ptr, "cloud1"); // 白色点云if (ret){double clrR = 0, clrG = 0, clrB = 1, szPoint = 3;viewer->setPointCloudRenderingProperties(visualization::PCL_VISUALIZER_COLOR, clrR, clrG, clrB, "cloud1"); // 设置点云颜色viewer->setPointCloudRenderingProperties(visualization::PCL_VISUALIZER_POINT_SIZE, szPoint, "cloud1"); // 设置大小}elseviewer->updatePointCloud<PointXYZ>(cloud_ptr, "cloud1");//3. 进入主循环while (!viewer->wasStopped()){// 如果点云不断更新,在这里添加点云// 如果需要改变视角,在这里设置相机viewer->spinOnce(100, true);Sleep(100);}
}
演示结果:

相关文章:
[C++][pcl]pcl安装后测试代码3
测试环境: vs2019 pcl1.12.1 代码: #include<iostream> #include <thread>#include <pcl/common/common_headers.h> #include <pcl/features/normal_3d.h> #include <pcl/io/pcd_io.h> #include <pcl/visualizatio…...
在WSL下使用makefile运行modelsim进行混合编译
modelsim的图像界面加载缓慢,实际上modelsim可以在纯命令行环境下仿真,使用-c参数:vsim -c。可以在WSL下用makefile运行Windows下的modelsim: HDL_CODE . HDL_CODE ../../rtl/ MODELSIM_ROOT : /mnt/e/exe/modeltech64_10.4/win…...
idea 常用插件和常用快捷键 - 记录
idea 常用插件 记得下载插件完成后,点击 Apply 和 OK Alibaba Java Coding Guidelines 作用:使用该插件可以,自动提示相关的语法格式问题,格式参考 阿里巴巴代码规范 详情链接: 代码规范之Alibaba Java Coding G…...
IDEA报错:Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
问题: 使用IDEA新建spring boot项目,报错如下: Plugin org.springframework.boot:spring-boot-maven-plugin: not found解决办法: 1.在本地maven仓库中找到spring-boot-maven-plugin的版本号 2.在pom.xml文件中添加对应的版本…...
C++——Vector:push_back和emplace_back的区别,测试写入1GB大数据时的性能差距
什么是emplace_back emplace_back是C11引入的STL容器成员函数。emplace操作只执行构造而不执行拷贝构造。 如何理解上面这句话?先来看一个场景。 class test { public:test(){}test(int i){ std::cout << "test(int i)" << std::endl; }tes…...
C/C++/QT/Python/MATLAB获取文件行数的示例
1. C获取文件行数 #include <stdio.h>int main() {FILE *file fopen("path/to/your/file.txt", "r");if (file NULL) {printf("Failed to open the file!\n");return 0;}int lineCount 0;char ch;while ((ch fgetc(file)) ! EOF) {if…...
mysql的binlog參數詳解
mysql的binlog參數詳解 1. expire_logs_days expire_logs_days:這個參數用於設置binlog日誌文件的過期時間。默認情況下,binlog文件永不過期。如果將其設置為一個正整數值,則表示binlog文件在指定天數後會被自動刪除。 max_binlog_size m…...
【SpringSecurity】九、Base64与JWT
文章目录 1、base64编码2、Base64Url3、JWT的产生背景4、JWT介绍5、JWT组成5.1 Header5.2 Payload5.3 Signature 6、JWT的使用方式7、JWT的几个特点 1、base64编码 base64是一种编码方式,不是加密方式。 所谓Base64,就是说选出64个字符:小写…...
Python的io模块
io 模块提供了 Python 用于处理各种 I/O 类型的主要工具。三种主要的 I/O类型分别为: 文本 I/O, 二进制 I/O 和 原始 I/O。 io.open() 是内置的 open() 函数的别名. 语法: open(file,moder,buffering-1,encodingNone,errorsNone,newlineNone,closefdTrue,openerN…...
CSS---flex布局
主要记录flex布局的要点以及实例 flex flex父标签的6个属性flex-direction: flex布局的方向flex-wrap: 是否可以换行flex-flow: flex-direction 和 flex-wrap 一起写justify-content:横向对齐方式align-items: 纵向对齐方式align-content: 有换行情况下的纵向对齐方…...
java线程和go协程
一、线程的实现 线程的实现方式主要有三种:内核线程实现、用户线程实现、用户线程加轻量级进程混合实现。因为自己只对java的线程比较熟悉一点,所以主要针对java线程和go的协程之间进行一个对比。 线程模型主要有三种:1、内核级别线程&#…...
JAVA 时间戳
时间戳(Timestamp)是一个表示特定时间点的数值,通常指的是自某个固定的起始时间(如1970年1月1日00:00:00 UTC)以来经过的秒数或毫秒数。 在 Java 中,可以使用 System.currentTimeMillis() 方法获取当前的时…...
层次分析法(matlab实现)
1.层次分析法(AHP) 在决策理论中,层次分析法是一种以数学和心理学为基础,组织和分析复杂决策的结构化技术,它代表了一种量化决策标准权重的准确方法,通过成对比较,利用个别专家的经验来估计因素…...
python selenium 自动化登录页面
去掉自动化标识,绕过js,绕过ip import time from selenium import webdriver from selenium.webdriver.chrome.options import Options# 去掉自动化标识,绕过js option Options() option.add_experimental_option(excludeSwitches, [enable…...
【Linux】高级IO --- 多路转接,select,poll,epoll
所有通过捷径所获取的快乐,无论是金钱、性还是名望,最终都会给自己带来痛苦 文章目录 一、五种IO模型1.什么是高效的IO?(降低等待的时间比重)2.有哪些IO模型?哪些模型是高效的?3.五种IO模型的特…...
anaconda navigator打不开,一直在loading画面
anaconda navigator打不开,一直在loading画面。百度解决方法,用网上的方法在命令窗口里运行conda update anaconda结果一直显示 solving environment卡在那里。又尝试用管理员身份运行还是不行,打开后出现There in aninstance of Anaconda Na…...
【Java基础】深入理解反射、反射的应用(工厂模式、代理模式)
文章目录 1. Java反射机制是什么?1.2 Java反射例子 2. Java反射机制中获取Class的三种方式及区别?3. Java反射机制的应用场景有哪些?3.1. 优化静态工厂模式(解耦)3.1.1 优化前(工厂类和产品类耦合ÿ…...
VUE 项目 nginx部署
server {listen 80; # 监听的端口号server_name 129.204.189.149; # 服务器的ip或者域名#charset koi8-r;#access_log logs/host.access.log main;# 前端服务反向代理配置location / {proxy_http_version 1.1;proxy_set_header Host $host;proxy_set_header X-Real-…...
Hashtable和HashMap、ConcurrentHashMap 之间的区别
Hashtable和HashMap的区别 HashMap和Hashtable都是哈希表数据结构,但是Hashtable是线程安全的,HashMap是线程不安全的 Hashtable实现线程安全就是简单的把关键方法都加上了synchronized关键字 直接在方法上添加synchronized相当于针对this对象࿰…...
包管理工具--》npm的配置及使用(二)
在阅读本篇文章前请先阅读包管理工具--》npm的配置及使用(一) 目录 🌟语义版本 避免还原的差异 npm的差异版本处理 🌟npm 脚本 (npm scripts) 🌟运行环境配置 在node中读取package.json …...
基于OpenClaw与Railway的自动化部署实践:从原理到实战
1. 项目概述:一个基于OpenClaw的铁路系统自动化工具最近在GitHub上闲逛,发现了一个挺有意思的项目,叫Mattslayga/openclaw-railway。光看这个名字,可能有点摸不着头脑,又是“OpenClaw”又是“Railway”的。简单来说&am…...
Cursor Free VIP:三步破解AI编程助手试用限制的专业解决方案
Cursor Free VIP:三步破解AI编程助手试用限制的专业解决方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached yo…...
别再只调XGBoost参数了!试试阿里PAI这篇AAAI 2024新作AMFormer,用Transformer做表格数据效果真香
突破表格数据建模瓶颈:AMFormer如何用算术特征交互重塑深度学习方法 在金融风控、医疗诊断和推荐系统等实际业务场景中,结构化表格数据始终占据着核心地位。传统树模型如XGBoost和LightGBM凭借对特征缺失和噪声的鲁棒性,长期统治着这一领域。…...
Yolov5算法界面 PyQt5 +.exe文件部署 yolo双击运行 yolo打包识别
介绍 Yolov5是一种基于深度学习的目标检测算法,PyQt5是一个Python编写的GUI框架,用于创建交互式界面。在部署和运行Yolov5模型时,结合PyQt5可以方便地创建一个用户友好的界面,并将代码打包为.exe文件以供其他人使用。 下面是一个简…...
从碎片化到知识体系:微信读书笔记助手如何重塑你的数字阅读体验
从碎片化到知识体系:微信读书笔记助手如何重塑你的数字阅读体验 【免费下载链接】wereader 一个浏览器扩展:主要用于微信读书做笔记,对常使用 Markdown 做笔记的读者比较有帮助。 项目地址: https://gitcode.com/gh_mirrors/wer/wereader …...
OpenHarmony ArkUI Toggle组件实战:红蓝药丸选择器开发详解
1. 项目概述与设计思路最近在整理OpenHarmony应用开发的学习笔记,发现很多初学者在接触到ArkUI的声明式开发范式时,对于如何将UI组件与用户交互、状态管理结合起来,总感觉隔着一层纱。理论看了不少,但一到自己动手,就不…...
基于Wasp全栈框架的SaaS启动模板:快速构建多租户应用
1. 项目概述:一个为独立开发者量身定制的开源SaaS蓝图 如果你是一名独立开发者,或者是一个小团队的创始人,心里揣着一个SaaS产品的想法,却总在技术选型、架构设计和持续交付的迷宫里打转,那么 wasp-lang/open-saas …...
安全聚合技术:原理、实现与多场景应用
1. 安全聚合技术概述安全聚合(Secure Aggregation)是一种多方安全计算技术,它允许多个互不信任的参与方在不泄露各自私有数据的前提下,共同计算出一个聚合结果。这项技术的核心价值在于解决了数据隐私与数据共享之间的矛盾&#x…...
终极指南:如何在Mac上免费备份和导出微信聊天记录
终极指南:如何在Mac上免费备份和导出微信聊天记录 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因误删重要微信聊天记录而懊恼?或是需要…...
轻量级爬虫框架slacrawl:基于规则驱动的模块化数据采集实践
1. 项目概述:一个轻量级、模块化的网页爬虫框架最近在做一个需要从多个网站定时抓取结构化数据的小项目,找了一圈现成的工具,要么太重(像Scrapy,学起来成本高),要么太死板(很多脚本只…...
