信号与槽是我个人认为QT中最牛的机制之一,最近没有其他的内容可写,今天就来细细总结一下这个信号与槽机制。 1. 信号与槽机制概述 信号与槽机制可以理解为QT中的一种通信手段,在运行相关代码前,分别声明信号和槽,再利用connect()方法将信号和对应的槽连接起来,之后再需要的地方使用emit触发信号,那么就可以让槽响应。 其中,槽可以是特定的槽函数…
正则表达式与C++

1. 概述 1.1 正则表达式概述 正则表达式(Regular Expressions,简称 regex)是用于匹配文本模式的一种特殊字符序列,其可以用一系列字符来表示出不同文本的对应模式。正则表达式的应用范围十分广泛,包括验证文本格式、判断字符种类、解析文本信息、转换目标文本、遍历搜索文本、符号化文本等。 一般在文件搜索、浏览器搜索时都可以使用正…
C++ Lambda表达式
【转载翻译】Open3D和PCL的一些比较
QT中多线程写法

1. Lambda表达式的简述 Lambda表达式是C++11引入的一种函数对象,其使用更为简洁,能更方便的嵌入需要函数的地方。 Lambda表达式也被称为匿名函数,其不需要特定的函数名称,甚至不用指定参数和返回类型。 合理使用Lambda表达式能有效提高代码的可读性,减少代码的冗余量,使代码更为简洁、高效、安全。 2. Lambda表达式的语法格…
本人在逛Github时,发现一个解答Open3D和PCL对比的小文章,还挺有参考价值的 原文:https://github.com/LaplaceKorea/investigate_open3d_vs_pcl/blob/main/README.rst#whats-the-support-for-gpus-look-like-in-open3d-an…
1. QThread及moveToThread() 使用情况: 多使用于需要将有着复杂逻辑或需要一直占用并运行的类放入子线程中执行的情况,moveToThread是将整个类的对象移入子线程。 优缺点: 优点:更符合QT的逻辑设计;灵活使用管理线程;将类的任务逻辑与线程逻辑区分开。 缺点:不易于单独对指定函数单独放入子线程,也就不易于将一个类中多个函…
三维点云投影二维图像的原理及实现
C++风格的强制类型转换
1. 概述 1.1 原理概述 三维点云模型是由深度相机采集深度信息和RGB信息进行生成的,深度相机能直接获取到深度图和二维RGB图像,也就是说利用相机原本的关系就可以把深度信息投影回二维图像,即把点云中每个点投影到二维的正确位置,再把原本每个点的RGB颜色信息保留,涂抹到二维的对应位置,就实现了三维点云模型向二维图像的投影。 首先获取相机的相关参数…
转载自:Point Cloud Processing with Open3D and Python 本文由 Carlos Melo 发布于2024年2月12日 本文很适合初学者对三维处理、点云处理以及Open3D库进行初步了解 另外,本文是基于Python代码入门的,而C++也是类似的 近年来,在AR和空间计算技术的大力推动下,3D处理领域吸引了越…
一般常用的是C语言风格的强制类型转换(type) expression,这种转换虽然简便,但很是粗糙,无法区分各种细致的转换(比如父类与基类之间的转换,const和非const之间的转换等),并且可能会带来一些难以察觉的问题。 C++为此推出了四种强制类型转换(static_cast、const_cast、dynamic_cast、reinterp…
在处理点云数据的时候,有时候需要实现点云数据的远程传输。当然可以利用传输文件的方法直接把点云数据序列化成数据流进行传输,但Open3D源码在实现RPC功能时就提供了一套序列化及传输的方法及思路,那我们就可以搬过来化为己用。 其中利用Open3D方法序列化点云最为重要,总的流程为根据需要进行有损压缩、序列化、根据需要进行无损压缩、网络传输,即:根据需…
转载自:The System Design Cheat Sheet: Message Queues - ActiveMQ, RabbitMQ, Kafka, ZeroMQ 本文由 Aleksandr Gavrilenko 发布于2023年12月21日 1. 前言 消息队列是异步服务到服务通信的一种形式。它们对于增强系统的可扩展性、可靠性和可维护性非…