[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 …...
Winhance中文版:让Windows系统管理不再复杂的全能工具
Winhance中文版:让Windows系统管理不再复杂的全能工具 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Winhance-zh…...
AutoDL部署大模型后,除了Chat:手把手教你用本地API接口玩转文档总结、代码生成和智能客服
AutoDL部署大模型后,除了Chat:手把手教你用本地API接口玩转文档总结、代码生成和智能客服 当你已经在AutoDL上成功部署了大语言模型,并验证了基础的聊天功能后,是否思考过如何将这些能力真正融入日常工作流?本文将带你…...
从工作流到超级智能体,Claude Code 重构AI应用底层逻辑
从工作流到超级智能体,Claude Code 重构AI应用底层逻辑 当AI应用从简单的对话交互,逐步演进到复杂的自动化工作流,再到如今的自主智能体时代,行业始终在探寻更高效、更智能的系统架构范式。Anthropic推出的Claude Code,…...
COMSOL 6.1 激光粉末床熔融气孔缺陷演化仿真:开启微观世界的探索之旅
COMSOL 6.1 激光粉末床熔融气孔缺陷演化仿真案例模型 本案例选用层流和流体传热模块,采用水平集法,考虑材料的热物性以及激光加工过程中的马兰戈尼效应、熔融金属表面张力、反冲压力、相变潜热、热对流和热辐射,建立含气孔缺陷的二维数值仿真…...
别再只用计数器了!手把手教你用Java实现滑动窗口限流(附完整可运行代码)
从零构建高精度滑动窗口限流器:Java实战与生产级优化 深夜的报警短信又一次震醒了你——核心API在整点时刻被突发流量冲垮。翻开监控图表,发现简单的计数器限流就像漏水的篮子,每到时间窗口切换的临界点,系统就会遭遇请求洪峰。这…...
Qwen3-TTS多语言语音合成实测:一键部署,生成10种语言的逼真语音
Qwen3-TTS多语言语音合成实测:一键部署,生成10种语言的逼真语音 1. 开篇:语音合成新体验 想象一下,只需输入一段文字,就能让电脑用10种不同语言"开口说话",而且声音自然得几乎分辨不出是机器生…...
腾讯混元翻译模型HY-MT1.5-1.8B:免费开源,企业级翻译解决方案
腾讯混元翻译模型HY-MT1.5-1.8B:免费开源,企业级翻译解决方案 1. 引言 1.1 为什么选择HY-MT1.5-1.8B 在全球化的商业环境中,语言障碍成为企业拓展国际市场的首要挑战。腾讯混元团队推出的HY-MT1.5-1.8B翻译模型,以其18亿参数的…...
不会画画也能创作!梦幻动漫魔法工坊新手入门全攻略
不会画画也能创作!梦幻动漫魔法工坊新手入门全攻略 1. 为什么你需要这个工具 你是否曾经有过这样的经历:脑海中浮现出一个绝妙的动漫角色形象,却因为不会画画而无法将它呈现出来?或者想为社交媒体创作独特的二次元头像ÿ…...
从零玩转GitHub:避坑指南与进阶技巧——2026年还不懂的天塌了
好的,今天这篇,咱不聊风花雪月,不扯行业趋势,就唠一个程序员安身立命的硬通货——GitHub。 对,就是那个绿油油的头像、一片Contributions的小方格,被无数简历写成“熟悉版本控制工具”,但可能连…...
Pixel Couplet Gen部署案例:混合云架构(公有云API+私有云模型)方案
Pixel Couplet Gen部署案例:混合云架构(公有云API私有云模型)方案 1. 项目背景与价值 Pixel Couplet Gen是一款融合传统春节文化与现代像素艺术风格的AI春联生成器。该项目基于ModelScope大模型驱动,通过创新的8-bit像素游戏UI设…...
