自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (5)
  • 收藏
  • 关注

原创 PCL绘制圆锥

本文介绍了如何通过单例模式(懒汉式)创建一个PCLViewer类,用于点云数据的可视化。PCLViewer类通过双重检查锁定机制确保线程安全,并提供了多种可视化功能,如点云、聚类结果、半透明圆锥等的显示。类中包含了将glm::dvec3向量转换为PCL点云的工具函数,以及处理点云数据的辅助方法。通过PCLVisualizer库,用户可以方便地进行3D点云的可视化操作,并通过viewSpin函数实现实时渲染循环。该设计模式确保了全局唯一实例的创建,简化了可视化接口的调用。

2025-05-19 11:36:43 107

原创 3D曲面上的TSP问题(二):ACO蚁群算法 + 2-opt搜索求解TSP问题

本文介绍了使用蚁群算法(ACO)结合2-opt局部搜索优化方法解决3D曲面上的旅行商问题(TSP)。文章首先通过OpenCV库中的cv::Mat类型距离矩阵distMap作为输入,初始化了ACO算法的参数,包括信息素矩阵、启发信息矩阵等。接着,详细描述了蚂蚁构建路径的过程,包括随机选择起点城市、计算转移概率、选择下一个城市等步骤。在每次迭代中,算法通过2-opt局部搜索对前20%的优秀蚂蚁路径进行优化,并更新信息素矩阵。最后,文章展示了如何动态调整算法参数以提高搜索效。

2025-05-15 17:21:09 288

原创 3D曲面上的TSP问题(一):曲面上点集距离求解

本文介绍了如何在3D曲面上计算两点之间的测地线距离,而非欧式距离。通过使用CGAL5.6.2和OpenCV4.11.0库,实现了从点集到凸包的计算,并进一步计算了测地线距离矩阵。代码中包含了点格式转换、凸包计算、最近点查询以及测地线距离计算等功能。具体实现中,首先将点集转换为CGAL格式,计算凸包,然后使用AABB树进行最近点查询,最后通过Surface_mesh_shortest_path计算测地线距离。代码还处理了可能出现的NaN或Inf值问题,确保计算的准确性

2025-05-15 17:11:37 321

原创 PCL点云按指定方向进行聚类(指定类的宽度)

点云按指定方向进行聚类(滑动窗口分割),需指定方向和类的宽度。

2025-05-08 14:39:25 355

原创 OpenCV提取图像中的暗斑/亮斑

滑动窗口动态阈值 + 阈值范围 + 开操作 + 闭操作 + 连通域提取和分析。

2025-05-07 10:55:21 307

原创 OpenGL超大分辨率图像显示

2)每绘制一块图像,对应绘制两个三角形((0,0),(1,1)单位矩形内的两个三角形),通过修改ModelMatrix,每次将两个三角形绘制在窗口的不同区域范围内,对ModelMatrix的修改包括平移和缩放两个部分(见代码RenderPattern接口实现)。1)将大图像拆分为多个小块(Tile),渲染整幅图像分解为每次绘制一块(Tile)图像,绘制多次,确保每块图像的纹理尺寸不超过OpenGL设备支持的纹理尺寸;bigimage.frag (GLSL着色器文件)1)Tile如何定义,如何划分Tile;

2025-05-06 14:41:10 253

原创 ROS2 开发踩坑记录(持续更新...)

这对于开发ROS程序时,需要包含特定的头文件时非常有用。查看包的安装位置和include路径详细文件列表。例如,xxx包名为pluginlib。在package.xml中添加。的路径,通常是为了找到与。这条指令的目的是查找。

2025-05-05 22:43:16 360

原创 固定尺寸矩形覆盖2D点云 + PCL可视化

在研究结构光传感器测量路径规划算法时遇到的问题:有一组2D点,如何用最少数量的固定尺寸的矩形框,覆盖所有点。通过DeepSeek,实现了一种解决方法并用PCL进行了结果的可视化。2)迭代多次,若查询到矩形框内无点,则删掉矩形框;若相邻矩形框的点可以用单个矩形框覆盖,则用单个矩形框代替两个矩形框;1)2D点按照矩形框尺寸,均匀划分网格;

2025-04-29 13:27:38 189

原创 求解有序2D曲线点曲率并可视化

计算有序2D点集曲率并可视化。使用PCL版本 1.15.0。

2025-04-28 15:11:35 226

原创 2D无序点集曲线重建(沿曲线重新排序)

从队首的点出发,沿着第二个点到第一个点的方向,在允许角度偏差范围内寻找最近点。:从队尾的点出发,沿着前一点到当前点的方向,在允许角度偏差范围内寻找最近点。当两个方向都无法找到符合条件的点时,算法终止。可以通过构造函数调整这个参数来适应不同曲线。:控制搜索方向的角度偏差阈值(弧度)从任意点开始(代码中选择第一个点)找到它的最近邻作为第二个点。

2025-04-27 16:06:17 154

原创 PCL绘制点云+法线

读取的点云ASCII码文件,每行6个数据,3维坐标+3维法向。

2025-04-27 00:09:38 538

原创 高精度3D圆弧拟合 (C++)

本文的目的是C++实现高精度的3D圆弧拟合,基本思路为:1)RANSAC拟合平面,得到平面模型,去掉离群点;2)根据平面模型,构建新的坐标系:将源点云投影至此坐标系XOY平面,得到2D圆弧点云;3)拟合2D圆弧点云,得到圆心点和半径;4)将圆心点结合2)中的坐标系,反变换至源点云坐标系中,得到3D圆弧圆心,3D圆半径与3)半径结果一致。

2025-04-26 22:26:31 855

原创 高精度并行2D圆弧拟合(C++)

PCL库拟合圆弧的问题:PCL中坐标值默认使用float类型,在某些高精度场景中不适用。Step 2:使用ceres非线性优化的方法,拟合inliers点,得到圆心和半径;Step 1: RANSAC找到圆弧,保留inliers点;

2025-04-24 22:53:50 386

原创 并行RANSAC平面拟合(C++)

1)Eigen2)GLMStep 1:源点云随机采样3个点;Step 2:3个点拟合平面,统计符合该平面模型的点,为inlier点;Step 3:判断inlier点比例是否达到阈值,更新最佳模型和最佳模型对应的inlier点集。若inlier比例不到阈值,则继续Step 1;若已满足阈值或达到最大迭代次数,转Step 4;Step 4:针对最佳模型的inlier点集,使用最小二乘法,重新拟合平面;

2025-04-23 14:09:36 258 1

原创 C# 实现TCP/IP通信协议——Message结构设计

(1)通信Message包括报头+消息体+结束符;(2)报头包含报文Title、发送时间、报文类型,SequenceNo等数据。(3)内容采用明文,使用空格补足空缺位置。 

2025-04-22 14:43:51 255

原创 点云多项式拟合(Z拟合为X和Y的二元n阶多项式)

点云多项式拟合,支持n阶多项式Z拟合为X和Y的二元n阶多项式

2025-04-09 14:19:00 123

原创 PCL拟合空间3D圆周 fit3DCircle

PCL 拟合空间3D圆周 得到圆心 法向量和半径

2025-04-08 16:58:32 387

原创 C++高效读取大规模文本格式点云(windows)

C++高效读取大规模文本格式点云(windows)执行效率明显优于ifstream + stof

2025-04-03 15:50:16 171

原创 C++多项式Lasso回归(多变量函数拟合)

多项式回归和Lasso多项式回归的主要区别在于Lasso回归引入了 L1 正则化,从而具备了特征选择能力和对过拟合的抑制能力。如果数据存在明显的非线性关系且特征数量较少,多项式回归可能是一个不错的选择;但如果数据特征较多且需要进行特征选择和提高模型泛化能力,Lasso多项式回归则更为合适。

2025-02-21 22:36:00 1057

原创 CGAL生成融合双椭球SurfaceMesh

使用CGAL构造融合双椭球曲面,输入为双椭球曲面的若干关键尺寸。

2025-02-20 14:12:44 159

原创 PCL点云处理——球面点云提取+拟合

(3)点云聚类,忽略点数较少的簇,剩余较大的簇拟合球,计算球-平面距离。一平板上沾有多个球,使用激光扫描仪获取点云,包括平板点云+多个球冠点云;(2)剔除距离平面一定距离范围内的点,余下所有球冠点;提取各球点云,拟合球面参数,求取球到平板距离。(1)求平板平面:降采样,提取最大平面;

2025-02-20 08:19:17 349

原创 四边形网格处理——沿Edge遍历 & 矩形域顶点提取

四边形网格沿Edge遍历的大致思路,Edge首尾点分别为a,b,首先分别找到a,b邻接的所有面,取b邻接面的所有与b邻接的顶点,从这些顶点中再筛选出不属于a的邻接面的顶点,即沿Edge遍历的下一个顶点。

2025-02-07 15:04:46 817

原创 双归一化(Dual Normalization)在点云匹配任务中的应用

dual_normalization的含义        在点云匹配中,dual_normalization(双重归一化)是一种用于优化匹配过程的技术,旨在通过两次归一化操作来提高匹配的鲁棒性和准确性。它主要用于处理点云特征之间的相似性矩阵,通过归一化操作平衡不同特征之间的匹配得分

2025-02-07 11:01:43 521

原创 PPFStructualEmbedding & GeometricStructureEmbedding 模块实现源码精读

PPFStructureEmbedding 是一种基于 Point Pair Features (PPF) 的几何结构嵌入方法,通常用于点云处理任务中。PPF 是一种描述点云中局部几何关系的特征表示方法,广泛应用于点云配准、物体识别和姿态估计等任务。  GeometricStructureEmbedding 类是一个 PyTorch 模块,旨在将点云中的几何结构嵌入到高维空间中。该嵌入捕捉了点之间的成对距离和角度关系,这对于许多 3D 视觉任务(如点云分类、分割或目标检测)至关重要。

2025-02-06 00:00:40 446

原创 VCGLIB构造/深拷贝Mesh

 深拷贝现有的Mesh数据,并考虑Face的删除(D)标记,新构造的Mesh中不含已删除的Face,且去除了未引用的顶点。

2025-01-31 21:51:40 168

原创 Soft Actor-Critic算法代码精解

SAC(Soft Actor-Critic) 是一种基于最大熵强化学习框架的算法,专门用于解决连续动作空间的任务。它结合了 Actor-Critic 框架和熵正则化的思想,能够在保证高效学习的同时,鼓

2025-01-22 14:08:05 394

原创 OpenCV提取前景物体颜色(HSV值)

提取图像前景物体的颜色HSV特征

2025-01-22 12:56:43 209

原创 强化学习Actor-Critic算法代码精读(PyTorch,含详细注释)

强化学习Actor-Critic算法代码精读(PyTorch,含详细注释)Actor-Critic算法非常实用,TRPO、PPO、DDPG、SAC等深度强化学习算法都是在Actor-Critic框架下进行发展的。深入了解Actor-Critic算法对读懂目前深度强化学习的研究热点大有裨益。

2025-01-20 16:48:47 186

原创 torch常用函数备忘录(持续更新...)

torch常用函数备忘录

2025-01-17 16:49:27 234

原创 Transformer注意力模块(Attention)矩阵变换维度详解

Transformer注意力模块(Attention)矩阵变换维度详解

2025-01-15 22:59:36 616

原创 基于曲率的点云降采样_曲率降采样(PCL+GPU)

基于曲率的点云降采样 pcl+cuda实现可实现尽可能保持细节特征的前提下,减少点云规模。使用CUDA加速,执行效率高。

2024-12-13 13:36:43 572

原创 快速提取规则立方体堆叠的外表面——基于VTK实现(二)

上文中实现的算法,可能存在非流形边的问题(两立方块仅存在一条边邻接)。(2)增加新的立方块,使新的立方块与这两立方块都是面邻接的关系;如果不考虑这个问题的话,实现(一)得内容就可以了。(1)识别出所有在两立方块仅存在一条边邻接的地方;(3)重复上述步骤,直到不存在非流形边。

2024-11-12 19:37:53 202

原创 快速提取规则立方体堆叠的外表面——基于VTK实现(一)

(1)在立方体堆叠方面,执行效率优于vtkCubeSource + vtkAppendPolyData方法;比如两个并排的立方体,一共6+6=12个面,但是中间有两个面是在内部,如何识别出这两个面,并把他们去掉呢?(2)在提取表面方面,效率优于vtkDataSetSurfaceFilter接口;后续可进一步通过使用vtkTriangleFilter将结果转为三角面片。问题:多个立方体面靠面的堆叠在一起,如何提取其外表面。1. 如何实现立方体堆叠;2. 如何清理重复顶点;3. 如何清除内部面;

2024-11-08 17:29:18 277

原创 VCGLIB中的FF邻接与VF邻接

【代码】VCGLIB中的FF邻接与VF邻接。

2024-10-25 20:03:39 188

原创 RIMLS点云滤波算法——具有锐利边缘的点云平滑

是一种用于点云去噪和表面重建的算法。它特别适用于处理具有锐利边缘的点云数据,因为它能够在去噪的同时保留这些边缘特征。RIMLS算法的核心思想是将点云中的每个点投影到一个分段光滑的表面上,这个表面是通过局部拟合点云数据得到的。RIMLS算法能够有效地处理具有锐利边缘的点云数据,同时减少噪声的影响。这使得它在许多应用中非常有用,如三维建模、计算机视觉和几何处理。资源中给出了一种C++实现,基于Github代码。

2024-10-23 10:15:31 1148

原创 Eigen/VCG如何构造和应用局部旋转坐标变换

已知变换后X、Y、Z轴方向向量(至少知道其中两个,第三个可以通过叉乘得到)在变换前坐标系下的表示,可通过这三个方向向量构造一个旋转矩阵。应用旋转矩阵得到变换后的向量表示。

2024-10-20 21:21:41 337

原创 CGAL生成闭合凸曲面后如何调整法线方向(翻转法向)

一个可能遇到的问题是,生成的曲面法向方向错误,期望法向为曲面→曲面外侧,实际为曲面→曲面内侧,此时需要进行法向翻转。一种可行的方法是,计算曲面上一点法向,计算曲面质心指向该点向量,通过判断法向和该向量的夹角来决定是否进行法向翻转。

2024-10-16 11:19:03 220

原创 如何理解平行移动(Parallel Transport)?

从不同地方摘录了有关平行移动的解释,并增加了自己的注解

2024-10-15 10:53:59 993

原创 CGAL的Surface_mesh中K-邻域(K-ring)顶点查找

在三维几何处理中,尤其是在处理网格(如三角网格)时,K-ring的概念经常用来描述顶点周围的局部几何结构。例如,在表面重建、特征提取、网格编辑、曲面平滑等应用中,K-ring可以用来定义平滑操作的邻域范围,或者用于识别和处理网格中的特定特征点。

2024-10-14 16:36:21 295

原创 CGAL中判断Surface_mesh的一条边是凸边(Convex)还是凹边(Concave)

对于每条边,计算其两个相邻面的法线,然后计算这两个法线向量之间的角度。如果这个角度大于180度,则该边为凹边;如果小于180度,则为凸边。

2024-10-13 17:21:35 190

visual assist 2522 cracked.zip

vs2022小番茄工具,仅支持vs2022

2025-03-31

RIMLS点云滤波算法C++实现

基于论文 《Feature Preserving Point Set Surfaces based on Non‐Linear Kernel》用C++实现的RIMLS点云滤波。 基于Github项目 Plane-Detection-Point-Cloud(https://github.com/ThibaultLejemble/Plane-Detection-Point-Cloud),用CGAL改装了部分代码。 RIMLS(Robust Implicit Moving Least Squares)是一种用于点云去噪和表面重建的算法。它特别适用于处理具有锐利边缘的点云数据,因为它能够在去噪的同时保留这些边缘特征。RIMLS算法的核心思想是将点云中的每个点投影到一个分段光滑的表面上,这个表面是通过局部拟合点云数据得到的。RIMLS算法能够有效地处理具有锐利边缘的点云数据,同时减少噪声的影响。这使得它在许多应用中非常有用,如三维建模、计算机视觉和几何处理 。

2024-10-23

截屏软件 OpenCV VS2013

自己用OpenCV写的截屏程序 Ctrl+S是保存图像 鼠标滑取截屏范围

2017-11-24

推箱子 C语言 小游戏 控制台

VS 控制台程序 可以自己选关的 刚学完C语言自己编的推箱子小游戏

2017-11-24

五子棋 MFC 小游戏

VS2010平台 MFC 五子棋小游戏 鼠标操作 OpenCV 练手 暂不支持AI

2017-11-22

2048小游戏 MFC 程序

2048小游戏 ↑↓←→键控制移动 可以自己替换照片,照片命名是2的倍数

2017-11-22

C++ 解算数独

C++递归方法解算数独 sodoku.h 和 sodoku.cpp 是数独模型类

2017-11-22

空空如也

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

TA关注的人

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