自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(177)
  • 资源 (6)
  • 问答 (2)
  • 收藏
  • 关注

原创 C++模板递归结构详解和使用

这个模板结构体通过递归调用的方式,逐层处理类型转换。它首先从迭代器的pointer类型开始递归,一直到普通指针类型,并在递归的最终层根据目标类型生成最终的指针类型。第一层递归:提取迭代器的pointer类型。递归最终层:最终匹配普通指针类型并进行转换。这种递归的方式使得可以处理复杂的类型结构,并通过多次递归最终转换为我们需要的目标类型。

2025-04-05 23:13:05 226

原创 CloudCompare 中ccDrawableObject 代码解析

(如可见性、颜色、法向量、标量字段、材质、OpenGL 变换、裁剪平面等)。CloudCompare 的点云、网格、线段等 3D 对象类都继承自。是 CloudCompare 中所有。这使得 CloudCompare。,实现高效的点云和网格可视化!,并实现具体的绘制逻辑。

2025-04-05 22:48:23 424

原创 C++20新增内容

C++20 是 C++ 语言的一次重大更新,它引入了许多新特性,使代码更现代化、简洁且高效。C++20 是 C++11 以来最重要的一次更新,新增的特性大大提升了代码的。C++20 提供了更现代化的编程方式,使开发更加。概念用于约束模板参数,使模板编程更加直观和安全。提供更安全和高效的数组访问方式,无需拷贝数据。C++20 引入了协程,使得异步编程更加高效。用于无损转换 POD 类型,无额外开销。C++20 引入模块化机制,减少。的格式化 API,但更安全。,简化比较运算符的定义。,用于安全地取消线程。

2025-04-04 10:02:05 147

原创 C++17更新内容汇总

C++17 是 C++14 的进一步改进版本,它引入了许多增强特性,优化了语法,并提升了编译期计算能力。C++17 主要增强了性能、简化了代码并提高了类型安全性。这些新特性使得 C++17 在现代 C++开发中更高效、更安全、更易读。编译期条件判断,避免编译无效代码,提高模板编程灵活性。在模板编程中进行编译期条件判断,提高代码效率。允许多个线程同时读取数据,但写入时必须独占。的并行版本,用于高效计算累积和。更高效,不需要复制字符串数据。避免重复构造对象,提高效率。可以存储任何类型的值。

2025-04-02 13:52:46 621

原创 C++中std::priority_queue的使用说明

(默认情况下),可以用于高效地获取当前最大(或最小)的元素。任务调度、路径搜索(Dijkstra/A。是 C++ STL 提供的。(堆顶是最小元素),可以用。搜索(最短路径算法),需要提供比较规则。

2025-04-02 09:18:58 404

原创 Codeium入门使用

工具,类似 GitHub Copilot,可以在。中提供代码自动补全、智能建议等功能。

2025-04-01 16:53:37 275

原创 MD编辑器中的段落缩进怎么操作

(中文空格,宽度与汉字相同)是一种特殊的空格字符,在中文文本排版中常用于。在一些 Markdown 编辑器(如 Typora)中,可以手动输入。在 Markdown(MD)编辑器中,段落的缩进通常可以通过。如果 Markdown 渲染器支持 HTML,则可以自动缩进。在 Markdown 中,列表项会自动缩进,因此可以。这是一个段落,使用 HTML 空格进行缩进。(如 Typora、Obsidian)中,可以使用。这是一个段落,使用了全角空格来进行首行缩进。),如果不想要符号,可以使用 HTML 代码。

2025-04-01 14:36:12 801

原创 点云数据集汇总整理(持续更新......)

这些数据集为点云处理领域提供了丰富的资源,从物体分类、物体识别到三维场景重建和自动驾驶,它们广泛应用于多个计算机视觉和机器学习任务中。根据需求选择合适的数据集可以帮助加速研究和开发。

2025-04-01 13:47:53 996

原创 C++中std::for_each的使用

适用于需要函数对象(如 Lambda 或 functor),但 C++11 之后的。是 C++ 标准库中的一个算法,用于遍历容器并对每个元素执行指定的操作。适用于复杂操作或需要在多个地方复用时。,即传入的函数对象(可用于累积状态)。std::for_each的使用。

2025-03-31 16:34:31 400

原创 std::max、std::min error C2589: “(”:“::”右边的非法标记,error C2059: 语法错误:“::”解决方法

按照上述方法排查,错误应该能解决。在 Windows 平台(特别是。,编译器将无法解析它们。

2025-03-31 11:22:24 344

原创 C++中类的大小决定因数

在 C++ 中,)受多个因素影响,主要包括。

2025-03-31 09:23:06 996

原创 CloudCompare (CC)中ccHObject详解

是 CloudCompare (CC) 的核心类之一,作为所有可视化和数据管理对象的基类。它支持层次结构管理,并能包含各种点云、网格、体素、标签等类型的子对象。取消子对象的父子关系(但不删除对象)CloudCompare 中有多个。创建对象,并指定名称(默认空)递归应用 OpenGL 变换。如果想在 PCL 中使用。进行可视化,建议使用。返回对象的唯一 ID。获取当前对象的父对象。

2025-03-28 16:56:05 684

原创 Eigen中向量(VectorXf)采用数组赋值方式推荐

是最推荐的方式,因为它不会创建新的对象,而是直接引用已有数据。类型的指针指向数组或动态分配的数据,你可以用以下几种方式将数据赋值给。是最推荐的方式,因为它不会创建新的对象,而是直接引用已有数据。如果数据是来自外部(如传感器数据、文件读取),如果数据是来自外部(如传感器数据、文件读取),:当你需要完整复制数据,而不是映射。:当你只想赋值部分数据或处理数据时。指向的是已知的 3 个值,可以用。:当你需要完整复制数据,而不是映射。:当你只想赋值部分数据或处理数据时。指向的是已知的 3 个值,可以用。

2025-03-28 09:23:27 359

原创 SLAM文献之-NR-SLAM: Non-Rigid Monocular SLAM

而传统SLAM(如ORB-SLAM)假设场景是静态或刚体运动的。以下是NR-SLAM的详细原理与推导,涵盖数学建模、优化方法及实现细节。(如人体、软体物体)的SLAM方法,能够在动态形变环境下实现相机跟踪与三维重建。(Non-Rigid SLAM)是一种用于。,并通过优化联合估计相机位姿与形变参数。对于形变场景,3D点。NR-SLAM通常采用。提升形变建模能力,以及。

2025-03-27 19:55:51 680 1

原创 C++ 中std::vector<T>清除方式

可以通过多种方式清除(删除所有元素)。这样可以根据具体需求选择最合适的方式。

2025-03-27 14:13:48 234

原创 C++中int 、size_t、float 和double应该怎么选择使用,适合在什么场景

各有不同的适用场景,选择合适的类型可以提高代码的可读性、性能和安全性。在 C++ 代码中,

2025-03-27 09:17:04 512

原创 CloudCompare中不同点云数据结构之间的继承关系

这个设计让 CloudCompare 能够高效管理、渲染和处理大规模点云数据!形成了一个树结构,使得 CloudCompare 可以组织多个点云数据。在 CloudCompare(CC)中,点云数据的组织方式是基于。,并在此基础上扩展功能。以下是详细的继承关系和它们之间的作用。在 CloudCompare 里,不同的点云数据结构继承自。

2025-03-26 14:28:13 1195

原创 C++变换迭代器使用

(一元函数)转换为不同类型的值,从而提供了一种在迭代时进行值转换的方式。(变换迭代器)**,它将一个迭代器的值通过。这些类型是标准迭代器需要提供的基本类型。,避免显式创建新数据结构,提高效率。该代码定义了一个**

2025-03-26 09:41:08 341

原创 PCL 1.12.0 释放std::free(ptr)问题解决

2025-03-25 22:21:17 314

原创 C++中std::partial_sort的使用

是 C++ 标准库中的一个算法,它可以对容器中的一部分元素进行排序,使得前。个元素按顺序排列,而不保证剩余部分有序。,其中 M 是整个范围的大小,N 是要排序的元素数量。:前 5 个元素是有序的,但整个数组仍然是部分无序的。

2025-03-25 15:30:31 288

原创 SLAM文献之-DefSLAM: Tracking and Mapping of Deforming Scenes from Monocular Sequences

来分离静态和动态部分,并优化相机位姿与场景结构。它扩展了传统刚性SLAM(如ORB-SLAM、LSD-SLAM)的方法,使其能够处理非刚性场景,如软组织(医疗成像)、水下环境、人体动作捕捉等。形变估计的目标是优化控制点的位置 ( w_i ),使得匹配误差最小。,并分别优化,适用于自动驾驶、AR/VR 等动态场景。:动态物体的特征点也会被跟踪,需要进一步筛选。,实现了动态环境下的鲁棒 SLAM。:避免动态物体影响相机位姿估计。:仅保留静态点用于相机位姿估计。DefSLAM 的形变通常用。

2025-03-25 13:41:55 746

原创 C++14 新增的特性

C++14 是 C++11 的小幅改进版本,主要以增强 C++11 的特性、修复缺陷和提供更好的开发体验为目标。C++14 主要是对 C++11 的增强和优化,新增的特性使代码更加简洁和高效。C++11 中 Lambda 需要显式指定参数类型,而 C++14 允许使用。C++14 允许为模板定义变量,而不仅仅是函数或类。为了提高可读性,C++14 允许在数字字面量中使用。,用于交换值并返回旧值,适用于重置变量并获取旧值。只能用于简单的表达式,而 C++14 允许。指定返回类型,C++14 允许省略。

2025-03-24 21:12:34 374

原创 C++开发内存监控工具推荐

是一个内存错误检测工具,可以检测 C/C++ 程序中的内存错误,比如越界访问、内存泄漏、堆栈腐败等。是一个内存泄漏跟踪工具,它能够跟踪程序中所有的堆内存分配,并且帮助你定位内存泄漏问题。大家可以根据自己的开发环境和喜好选择合适的工具,可以帮助大家在开发过程中及早发现并解决内存相关问题。是 Clang 提供的另一个内存工具,专门用于检测程序中的未初始化内存使用问题。工具可以帮助你检查程序中的内存泄漏、内存越界、未初始化内存使用等问题。是一个广泛使用的内存调试和性能分析工具,它的。在 C++ 开发中,

2025-03-24 13:50:08 949

原创 InfiniTAM SLAM三维重建系统详细流程

其中 ( p_1, p_2, p_3 ) 为素数,( N ) 为哈希表大小。由于 TSDF 需要存储大量体素,InfiniTAM 采用。为了在不同精度需求下高效更新地图,InfiniTAM 采用。系统,适用于实时 3D 重建。为了可视化 3D 地图,InfiniTAM 采用。为了减少存储和计算开销,InfiniTAM 采用。在实时 SLAM 中,每帧数据都更新地图会导致。当新帧进入时,更新 TSDF,同上描述。,因此 InfiniTAM 采用。InfiniTAM 主要支持。InfiniTAM 是基于。

2025-03-21 14:30:09 702

原创 C++11新增内容汇总

C++11 是 C++ 语言的一次重要更新,引入了大量的新特性,使 C++ 代码更。,可存储可调用对象(函数、lambda)。C++11 原生支持多线程编程,提供。之外的另一种选择,提供更安全的数组。关键字用于自动推导变量的类型。,减少不必要的拷贝,提高性能。,是值得学习和使用的重要版本!C++11 引入了更简洁的。循环语法,适用于遍历容器。确保正确覆盖基类的虚函数,,用于存储多个不同类型的值。用于获取表达式的类型。,避免手动管理动态内存。,提供更灵活的匿名函数。

2025-03-21 10:04:51 430

原创 C++中std::distance使用

是一个用于计算两个迭代器之间元素个数的函数,常用于获取容器中两个元素之间的索引位置或计算偏移量。

2025-03-20 13:45:13 375

原创 Ceres中的AddResidualBlock详解使用

参数块(Parameter Blocks)**关联起来,定义优化问题中的残差项。每个残差块对应一个最小化的目标项,通过调整参数块的值,使得所有残差的平方和最小化。,可以高效构建复杂的非线性优化问题,结合Ceres的自动微分和鲁棒求解能力,实现高精度的参数估计。是一个核心函数,用于向优化问题中添加残差块。参数块的顺序必须与代价函数中定义的参数顺序一致。例如,若代价函数定义为。)必须与实际参数块维度一致,否则会引发运行时错误。用于将**代价函数(Cost Function)代价函数模板参数中的维度(如。

2025-03-20 09:33:55 837

原创 2024年十大开源SLAM算法整理

以下是对2024年十大开源SLAM算法的详细介绍,包括每个算法的核心特性、技术创新和应用场景。

2025-03-19 14:01:12 1242

原创 移动最小二乘法(Moving Least Squares, MLS)原理和c++实现

是一种局部加权回归方法,通过对每个查询点邻域内的数据点进行加权最小二乘拟合,生成光滑的曲面或曲线。与传统最小二乘法不同,MLS的拟合函数随查询点位置动态变化,适用于非均匀采样数据与复杂几何建模。:对每个点应用MLS,用邻域点的加权平均更新其位置。,在其邻域内找到最优拟合函数。

2025-03-19 13:57:44 1063

原创 C++中std::shuffle 的使用

是 C++ 标准库中的一个函数,用于对容器中的元素进行随机排列(洗牌)。它的实现基于现代随机数生成器,因此比。可以提供高质量的随机性,适用于各种随机排列的场景。在 C++14 被弃用,C++17 后被移除)。(输出的顺序是随机的,每次运行结果可能不同。是现代 C++ 中推荐的随机洗牌方法,结合。这样每次运行代码都会得到相同的打乱结果。

2025-03-18 17:36:54 270

原创 Keil5 常用调试技巧

Keil MDK-ARM(Keil5)是嵌入式开发中广泛使用的集成开发环境(IDE),其调试功能强大但需要合理配置和技巧才能高效使用。以下是针对常见调试问题的技巧总结,涵盖断点设置、变量监控、故障排查、性能分析等内容。1. 断点设置与优化冲突问题:断点失效或位置偏移。原因:代码优化(如-O2/O3)可能导致编译器重排代码,使断点位置与实际执行行号不一致。解决方案调整优化级别:在中暂时关闭优化(设为-O0插入__nop()指令:在关键代码行插入空操作指令,强制保留断点位置。使用#pragma指令。

2025-03-18 13:57:07 453

原创 SLAM文献之-MULLS: Versatile LiDAR SLAM via Multi-metric Linear Least Square

MULLS 通过多度量融合与线性最小二乘优化,显著提升了LiDAR SLAM在复杂场景下的鲁棒性。其核心创新在于。

2025-03-18 10:45:53 556

原创 最小二乘法的算法原理

(Least Squares Method)是一种数学优化技术,核心思想是通过最小化预测值与真实值之间的。最小二乘法的几何意义是:将观测值 ( y ) 投影到设计矩阵 ( X ) 的列空间,使得残差向量。:根据房屋面积 ( x ) 预测价格 ( y )。,找到模型参数的最优解。)求解,后面章节进行讲解。),需使用迭代方法(如。

2025-03-17 14:54:01 1249

原创 C++中lower_bound 的使用

是 C++ 标准库中的一个算法,用于在一个已排序的容器中查找第一个不小于给定值的位置。它返回一个迭代器,指向该位置。如果该值已存在,则返回该值的第一个出现位置。如果值不存在,则返回容器中第一个大于该值的位置。4 是我们要查找的值。如果容器中不存在完全匹配的元素,std::lower_bound 将返回大于给定值的第一个元素的位置。如果给定值大于容器中所有元素,std::lower_bound 将返回 vec.end()。返回一个迭代器,指向容器中第一个大于或等于 4 的元素(即 4 的位置,若存在)。

2025-03-17 13:50:53 145

原创 Visual Studio开发工具 让“解决方案资源管理器”靠左边解决方法

从而改写我的当前设置>下一步选择VisualC++默认设置,最后点击完成即可。重置所有设置>否,仅重置,

2025-03-17 10:02:11 236

原创 Point-to-Plane ICP 配准 算法原理

目标函数:点到平面的距离平方和∑iRpit−qi⋅ni2i∑​Rpi​t−qi​⋅ni​2线性化:利用小角度假设R≈Ia×R≈Ia×​进行近似误差表达ei≈pi−qi⋅nia⋅pi×nit⋅niei​≈pi​−qi​⋅ni​a⋅pi​×ni​t⋅ni​构造线性系统:令Aipi×niTniTAi。

2025-03-14 15:41:37 1136

原创 C++中std::count` 和 `std::count_if`的用法和示例

是两个用于统计容器中满足特定条件的元素数量的算法。:需要自定义判断逻辑(如范围比较、字符串长度等)。:直接比较元素是否等于某个固定值。在 C++ 标准库中,

2025-03-14 09:58:53 372

原创 C++中std::unordered_map的用法和示例

是 C++ STL 中的一个关联容器,基于哈希表实现,用于存储键值对(key-value pairs)。它提供平均时间复杂度为 O(1) 的插入、删除和查找操作,适用于需要快速访问数据的场景。在需要快速查找且无需有序键的场景下非常高效,广泛应用于缓存、计数器、词频统计等领域。若键是自定义类型(如。

2025-03-13 14:03:02 519

原创 G-ICP(Generalized Iterative Closest Point)点云配准算法原理

G-ICP是传统ICP(Iterative Closest Point)的扩展,通过引入点云的局部结构信息(协方差矩阵),将点云配准问题建模为概率分布之间的匹配问题,从而提升配准鲁棒性和精度。使用高斯-牛顿法或Levenberg-Marquardt算法迭代求解旋转。但未考虑点云的局部几何结构,对噪声和初始位姿敏感。是联合协方差矩阵,用于加权不同方向上的残差。分别为源点和目标点的协方差矩阵。

2025-03-13 09:32:42 1047

原创 C++中error C2027: 使用了未定义类型 问题部分解决方法

如果你在代码中定义了一个类型(如类或结构体),但是没有正确定义或者在引用之前就已经使用了它,也会发生此错误。解决方法:确保在使用类型之前已经正确定义了它。// 确保 MyClass 在这里已经被定义。

2025-03-12 17:05:21 875

图像/点云非刚性检测和配准-非刚性检测,非刚性增强现实,实时可变形配准

提出了一种无需先验姿态知识的实时非刚性表面检测方法。该方法基于目标物体未变形图像与待检测图像之间的宽基线点匹配。匹配点不仅用于检测,还用于计算两图像间的精确映射。该算法对大变形、光照变化、运动模糊和遮挡具有鲁棒性,在2.8 GHz PC上以每秒10帧运行。我们通过真实修改变形表面纹理和处理复杂光照效果展示了其应用。 结合可变形网格与精心设计的鲁棒估计器是处理非刚性表面建模中大量参数的关键,即使在错误匹配率超过90%时仍能有效剔除异常值,远超实际需求。

2025-03-26

三维数字人重建、编辑与驱动PPT

三维数字人重建、编辑与驱动PPT

2025-01-21

SLAM技术详解及其项目应用场景与优化方案

内容概要:本文档详细介绍了同步定位与地图创建(SLAM)的基本概念、主流技术、结构组成及其在不同场景下的应用与挑战。探讨了基于滤波和优化算法的传感器融合方案,并分析了几种典型的SLAM解决方案,包括ElasticFusion、BundleFusion和InfiniTAM。文中还讨论了AI与SLAM技术的结合,以及针对具体项目的优化思路和技术选型。 适合人群:对SLAM技术感兴趣的初学者、研究人员、开发者和工程技术人员。 使用场景及目标:①理解和掌握SLAM的基本原理和技术路线;②对比不同SLAM方案的特点和优劣;③探索适用于特定项目的SLAM优化策略;④了解AI在SLAM领域的应用前景和挑战。 其他说明:文档不仅提供了理论知识,还包括实际案例和具体实施建议,适合希望深入了解SLAM技术并在实践中应用的相关人士。

2024-10-31

SVN Update出错问题解决工具包 Sqlite3.exe

SVN Update出错问题解决工具包 Sqlite3.exe

2024-10-31

FAST-LIO 文章解读和公式推到

FAST-LIO 文章解读和公式推到

2024-09-28

opencl-cplusplus学习指导手册

这是Opencl的C++使用手册,快速上手学习OpenCL加速计算的必备资料。

2021-04-14

ygz-stereo-inertial(立体匹配优化算法)

ygz-stereo-inertial(立体匹配优化算法)

2021-02-02

Opencl入门学习例子

OPencl入门学习简单例子,完整包含了opencl编程的步骤,可供参看学习。。一个完整的OpenCL加速技术过程涉及到平台(Platform)、设备(Device)、上下文(Context)、OpenCL程序(Program)、指令队列(Command)、核函数(Kernel)、内存对象(Memory Object)、调用设备接口(NDRange),下面将分别进行做简单的介绍,后面也会给出参考资料的相关链接。

2020-12-04

PCL点云官方点云数据.zip

PCL官方点云数据,包含全部全部点云数据,可以用于官方所有例子的测试与比较,其中有著名的斯坦福大学提供的兔子模型,马模型等。

2020-07-22

在PCL同一个窗口中显示多片点云模型

有时候需要在PCL同一个窗口中显示加载多片点云数据,便于不同点云数据之间的比较。

2018-10-08

opencv-3.1.0+opencv_contrib-3.1.0+ippicv_windows_20151201

opencv-3.1.0+opencv_contrib-3.1.0+ippicv_windows_20151201资源,由于在官网下载太慢了,这里整理了一下,方便大家下载。

2018-05-16

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除