c#前端实现对pcl点云颜色根据强度特征动态变化突出指定对象
前言
本文主要介绍如何使用c# winform对点云颜色根据点云强度信息对显示的点云颜色进行动态调整。
目的是根据强度信息采用不同的颜色特征突出不同的物体。
一、点云强度是什么?
点云强度又可以叫做反射率,
通常常见的点云格式包括:以pcl为例
(pcl::PointXYZ) \(pcl::PointXYZI) \(pcl::PointXYZL) \(pcl::PointXYZRGBA) \(pcl::PointXYZRGB) \(pcl::PointXYZRGBL) \(pcl::PointXYZHSV) \ (pcl::PointNormal) \(pcl::PointXYZRGBNormal) \(pcl::PointXYZINormal) \(pcl::PointXYZLNormal)
那么再以上的几种格式中,出现一种我们发现 pcl::PointXYZI、pcl::PointXYZINormal中出现了一个I,这里代表的就是点云的强度值,其对应的就是下图XYZI格式中的intensity 信息,下图也是标准的PCD点云保存的头部文件格式类型。

那么,根据点云的强度信息,我们可以对点云中获得些什么样的信息呢?
如下图所示,我们可以通过调节强度值来突出一些点云物体的轮廓和边界(比如红色矩形框内的信息)。有利与对指定物体或指定对象的观测或提取。


那么我们怎么根据点云的强度信息对点云进行对比度增强呢,或者说根据强度信息提取自定的物体。
二、使用步骤
1.c#+winform系统界面搭建
首先,要做到手动的对点云强度信息进行修改,就需要先搭建一个可以显示点云的工具。具体的搭建过程可参考博客c#界面中显示PCL点云数据
或者也可下载VS工程源码c#窗体界面中显示点云图像源码
此处我们搭建一个如下的界面(包括ImageBox 按钮、滑动块)

然后我们再C++代码中通过获取滑动块的数值对点云的强度值范围进行调整。
此处我们将点云中强度超过滑动块数值的点的intensity设置为0.
for (int i = 0; i < NewTypeCloud->size(); i++) {if (NewTypeCloud->points[i].intensity > model) {inputCloud->points[i].intensity = 0;}else {inputCloud->points[i].intensity = NewTypeCloud->points[i].intensity;}
}
然后再根据点云的强度信息对点云进行可视化
pcl::visualization::PointCloudColorHandlerGenericField<PointT> fildColor(Input_cloud, "intensity"); // 按照x字段进行渲染
input_viewer->addPointCloud<PointT>(Input_cloud, fildColor, "Input_RGB"); // 显示点云,其中fildColor为颜色显示
}
input_viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, ShowSize,"Input_RGB");
注意,要实现对点云强度信息的动态调整,需要设置滑动块的属性,设置鼠标在该控件上的释放属性

效果如下


相关文章:
c#前端实现对pcl点云颜色根据强度特征动态变化突出指定对象
前言 本文主要介绍如何使用c# winform对点云颜色根据点云强度信息对显示的点云颜色进行动态调整。 目的是根据强度信息采用不同的颜色特征突出不同的物体。 一、点云强度是什么? 点云强度又可以叫做反射率, 通常常见的点云格式包括:以pcl为…...
如何制定达人营销策略
如今,达人营销不再是一个新兴趋势,而是公司整个数字营销战略的一部分。虽然十年前,达人还不存在,但随着公司对数字化营销依赖度地提升,各个领域的大V群体逐渐壮大,越来越多的公司已经采用了达人营销策略。如…...
100种思维模型之三层解释思维模型-020
很多人认为,世界首富巴菲特的日子很轻松,因为他想要什么就可以买什么。 所以,人人都学巴菲特,但很多人不知道学习他什么…… 润米咨询董事长刘润老师在2020年干了这样一件事情:向100个不认识的人学习。如,向…...
RK系列(RK3568) i2s 音频输入 麦克风驱动
平台:Android12SOC:RK3568外围芯片:XS9922i2s简介:从上图看I2s主要的线有:SDO SCLK LRCK MCLK I2S协议只定义三根信号线:串行时钟信号SCLK(BCLK)、数据信号SD和左右声道选择信号WS。(1ÿ…...
Python|Pymol的安装
Pymol的使用其实可以分为两种,一种是GUI图形操作界面,直接可以去Pymol官网上下,另一种则是使用API的方式直接调用,适合写脚本批量处理一些东西。建议画图,看结构直接用GUI,但是计算RMSD啥的,用…...
Mysql中关于查询日志的配置详解
查询日志 MySQL中的查询日志保存在文本文件中,能够记录MySQL中的所有数据操作。 开启查询日志 MySQL默认情况下没有开启查询日志,如果需要开启查询日志,则需要在 my.cnf 文件或者 my.ini 文件的 [mysqld] 选项下进行配置。例如,…...
外包整整干了一年,废了。。。
先说一下自己的个人情况,大专生,18年通过校招进入湖南某软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了…...
内网渗透(五十六)之域控安全和跨域攻击-非约束委派攻击
系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…...
初阶C语言——指针【详解】
文章目录1.指针是什么2.指针和指针类型2.1 指针的解引用2.2 指针 -整数3.野指针3.1 野指针成因3.2 如何规避野指针4. 指针运算4.1 指针-整数4.2 指针-指针4.3 指针的关系运算5. 指针和数组6. 二级指针7. 指针数组1.指针是什么 指针理解的2个要点: 指针是内存中一个最…...
MySQL tinyint(1) 、int(32) 与 varchar(255) 长度含义不同
MySQL tinyint(1) 、int(32) 与 varchar(255) 长度含义不同 发现 tinyint(1),int(32) 和 varchar(255) 这里面的数字的含义是不同的。 先说数字类型 tinyint 和 int 等 他们能存储的字节大小是与类型绑定的,即定义了 tinyint 或者 int 就确定了能存储…...
搜索旋转排序数组、路径总和 II、拆分数字
文章目录搜索旋转排序数组(数组、二分查找)路径总和 II(树、深度优先搜索)拆分数字(算法)搜索旋转排序数组(数组、二分查找) 整数数组 nums 按升序排列,数组中的值 互不…...
QT自绘标题和边框
在QT中如果想要自绘标题和边框,一般步骤是: 1) 在创建窗口前设置Qt::FramelessWindowHint标志,设置该标志后会创建一个无标题、无边框的窗口。 2)在客户区域的顶部创建一个自绘标题栏。 3)给窗口绘制一个背…...
数据库浅谈之 LLVM
数据库浅谈之 LLVM HELLO,各位博友好,我是阿呆 🙈🙈🙈 这里是数据库浅谈系列,收录在专栏 DATABASE 中 😜😜😜 本系列阿呆将记录一些数据库领域相关的知识 Ἴ…...
Unable to connect to Redis无法连接到Redis
文章目录项目场景:问题描述原因分析:解决方案:项目场景: 提示:这里简述项目相关背景: 在某个项目中的提交按钮不好用 org.springframework.data.redis.RedisConnectionFailureException: Unable to con…...
Feign、Ribbon、Hystrix
🏆今日学习目标: 🍀Feign、Ribbon、Hystrix ✅创作者:林在闪闪发光 ⏰预计时间:30分钟 🎉个人主页:林在闪闪发光的个人主页 🍁林在闪闪发光的个人社区,欢迎你的加入: 林在…...
SpringCloud - Nacos注册发现
目录 服务注册到Nacos 服务分级存储模型 NacosRule负载均衡 服务实例的权重设置 环境隔离 Nacos与Eureka的对比 添加Nacos配置 微服务配置拉取 配置热更新 多环境配置共享 服务注册到Nacos 1.在父工程引入SpringCloudAlibaba的依赖 2.注释掉order-service和user-ser…...
Socket编程、协议理解
Socket编程、协议理解简单说明Socket编程Socket 常用接口Socket服务端业务编码代码说明文件服务(fileServe)消息服务(msgServe)消息写会(writeResponse)注意事项Socket客户端业务编码代码说明总结RYP协议:基于TCP/IP协议之上的自定义协议Rocky Protocol。 协议用途&…...
Idea集成码云
1:Idea集成码云1.1:IDEA安装码云插件【第一步】Idea 默认不带码云插件, 我们第一步要安装 Gitee 插件。如图所示, 在 Idea 插件商店搜索 Gitee,然后点击右侧的 Install 按钮。安装成功后,重启 Idea。Idea 重…...
并发编程学习篇ReentrantLock设计思想剖析
一、AQS原理剖析 什么是AQS java.util.concurrent包中的大多数同步器实现都是围绕着共同的基础行为,比如 等待队列、条件队列、独占获取、共享获取等而这些行为的抽象就是基于AbstractQueuedSynchronizer(简称AQS)实现的,AQS是一…...
区分效度全流程分析
基本说明 区分效度(又称判别效度、区别效度),其实质也是一种结构效度。区分效度强调本不应该在同一因子的测量项,确实不在同一因子下面。比如说,测量项A和 B分别测量两个属性,应该分属于因子A和因子B中&…...
告别TeamViewer!在Ubuntu 22.04上安装向日葵远程控制的保姆级教程(附依赖问题解决)
在Ubuntu 22.04上无缝迁移至向日葵远程控制的完整指南当TeamViewer开始频繁弹出商业使用警告或连接不稳定时,许多Linux用户开始寻找更友好的替代方案。向日葵作为国产远程控制工具的后起之秀,不仅完全免费,还针对Linux环境做了深度优化。本文…...
别再只会用T检验了!用Python+SciPy搞定Z检验,5分钟判断两组数据差异是否显著
用Python实战Z检验:5分钟判断业务数据差异显著性当你手头有两组A/B测试结果或不同版本的产品指标时,如何快速判断它们的均值差异是否具有统计学意义?很多数据分析师的第一反应是使用T检验,但当你面对大样本数据时,Z检验…...
3步快速上手SSDD:合成孔径雷达舰船检测终极指南
3步快速上手SSDD:合成孔径雷达舰船检测终极指南 【免费下载链接】Official-SSDD SAR Ship Detection Dataset (SSDD): Official Release and Comprehensive Data Analysis 项目地址: https://gitcode.com/gh_mirrors/of/Official-SSDD SSDD(SAR S…...
抖音无水印视频下载实战:突破平台限制的高效内容获取方案
抖音无水印视频下载实战:突破平台限制的高效内容获取方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...
深度 | 昇腾NPU MoE算子实现:从TopKGating到Expert并行,稀疏激活的硬件适配
引言 MoE(Mixture of Experts,混合专家)是大模型近年来最重要的架构演进之一。GPT-4、Mixtral-87B、Qwen1.5-MoE——几乎所有宣称"超大规模"的新模型都在用 MoE。核心逻辑很简单:用多个独立的"专家"网络替代…...
加拿大AI治理实战:风险分级、监管沙盒与可信AI工程化落地
1. 项目概述:这不是一场技术秀,而是一场制度设计的实战演练“Canada’s AI Ambitions: Navigating the Future of AI Governance”——这个标题里没有一行代码,不提一个模型参数,却直指当前全球AI发展最棘手、最易被忽视的底层命题…...
别再死记公式了!用Python和NumPy直观理解向量模长与矩阵范数
用Python和NumPy直观理解向量模长与矩阵范数 线性代数中的向量模长和矩阵范数常被视为抽象的数学符号,但它们在机器学习、图像处理和科学计算中扮演着核心角色。本文将用Python代码将这些概念可视化,让你在交互式实践中建立直觉理解。 1. 向量模长&#…...
如何高效管理macOS安装文件?这款跨平台工具给你答案
如何高效管理macOS安装文件?这款跨平台工具给你答案 【免费下载链接】gibMacOS Py2/py3 script that can download macOS components direct from Apple 项目地址: https://gitcode.com/gh_mirrors/gi/gibMacOS 在技术爱好者和系统管理员的世界里,…...
SpringBoot-Scan:面向红队的SpringBoot资产指纹与测绘工作流
1. 这不是又一个“SpringBoot漏洞扫描器”教程,而是一份真实红队队员的资产测绘工作流你有没有遇到过这样的情况:手头刚拿到一个目标域名,技术栈标注着“SpringBoot 2.7.x”,但连它到底跑在哪个端口、是否启用了Actuator、有没有暴…...
别再只会用`docker system prune`了!聊聊Docker磁盘清理的5个隐藏场景与实战命令
别再只会用docker system prune了!聊聊Docker磁盘清理的5个隐藏场景与实战命令 Docker作为现代开发与运维的核心工具,其便捷性背后往往隐藏着磁盘管理的复杂性。当docker system prune成为大多数人的清理"万能药"时,真正棘手的磁盘…...
