自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(246)
  • 资源 (2)
  • 收藏
  • 关注

原创 点到点、点到线、点到线的ICP区别

区别主要是在于源点云src经过一个初始变换后,与target点云(或者说是模板)之间的差异定义上。

2024-07-21 17:12:01 131

原创 SAC-IA粗配准算法记录

SAC-IA(Sample Consensus Initial Aligment,SAC-IA)粗配准算法是一种基于局部特征描述子的点云粗配准算法,其需要计算点云的快速点特征直方图(FPFH)来保持对应点对之间的相似关系,根据相似关系来搜索点云中的对应点。其基本原理是采用采样一致性的思想,通过查看大量的点对对应关系来计算点云之间的刚体变换矩阵,并将最小配准误差对应的变换矩阵记为最佳变换矩阵。

2024-07-14 23:52:38 154

原创 pcl::visualization::PCLVisualizer保存当前点云显示的视角,下次启动时加载(踩坑)

看似一个很简单的需求,就是们在界面显示点云后,人为操作鼠标(旋转,平移,缩放)后使得点云显示的视角与比例刚好符合实际需求。那么,不由得就会想把这个调节好后的视角保存下来,当下次程序启动或者使用过程中,直接让点云显示到达这个视角。本文对应的PCL版本1.11.1.

2024-07-07 02:26:32 211

原创 opencv实现surface_matching记录

使用的cv版本为4.7.0 , surface_matching功能是附加在contrib中的,并未直接包含在opencv 4.7.0中,因此编译的时候需要考虑contrib。VS版本为2022, CMake版本为3.30-rc4.

2024-06-30 01:28:40 197

原创 QT + PCL + VS + vtk 显示点云

本人环境为:vs2022社区版;qt 5.15.15(记不清了,但肯定是5.15.x);PCL为1.13.1版本的all_in_one安装包,直接运行可执行文件就直接在本PC上安装的那种;

2024-06-24 15:26:08 369

原创 杂笔: 物体的三维识别与6D位姿估计

特别的是,由于这种增强的位姿检索,新的pipeline不需要ICP优化,从而在速度和精度之间取得更好的折衷。具体来说,学习到的是哈希表bin的权重值,以及模型点的权重值。2013年,Choi等人继续对PPF做出改进,提出用不同种类的点对几何关系,如利用“boundary-to- boundary”的边缘点点对构建特征。Drost的方法很快得到了广泛的关注,Choi等人在2012年对PPF进行了改进,将传统的四维几何点对特征扩充了颜色信息,得到CPPF这么一个十维特征描述子(两点各增加了RGB信息)。

2024-06-16 12:58:28 90

原创 QPlainTextEdit实现不同行显示不同颜色

/ 根据需求设置新追加的内容格式,比如颜色。// 恢复光标到文本末尾。

2024-06-07 13:47:34 368

原创 QT之可拖动布局研究

最开始只用到了最基本的水平布局 、垂直布局。它的好处就是窗口整体缩放后,控件也自动等比例缩放。但是比如水平布局之中的控件宽度比例、垂直布局之中的控件高度比例都是固定的。平时也不怎么开发界面,最近有个需求,想界面上的控件布局满足以下:1)窗口整体缩放后,控件也自动等比例缩放。2)与很多商业化软件或者很多IDE一样,控件支持鼠标拖动调节大小。比如vs中的很多窗口可以拖动来控制它们大小。环境:vs2019 + Qt 5.15.2。

2024-06-01 00:12:27 689

原创 二维图像的双线性插值

见下图,假设原图为单通道的灰度图,想求图像中某点Q(x,y)的灰度值。

2024-04-21 02:52:35 120

原创 手眼标定(外参)

flags的选项中有一个是CALIB_CB_CLUSTERING,可以使用or逻辑符与图案标识符一起设置,此时函数会以稍微不同的算法来寻找圆圈,这个替代算法对透视畸变具有较高的鲁棒性,但对背景的干扰也更加敏感,适合标定具有非常宽视野的相机。flags :(默认缺省)标识符,标识所采用的图案类型(对称圆点CALIB_CB_SYMMETRIC_GRID or 非对称圆点CALIB_CB_ASYMMETRIC_GRID)以及相关的算法参数。做圆点标定中的特征点提取时,发现对于部分存在较大透视畸变的标定图片,

2024-04-18 12:12:26 169 2

原创 windows系统下查找某目录中具有指定后缀的全部文件

打开cmd,进入到所要进行查询的目录:#全路径显示#如果只要纯文件名:

2024-04-12 11:44:33 458

原创 三维空间内的直线最小二乘拟合(代码经过实测)

【代码】三维空间内的直线最小二乘拟合。

2024-04-10 23:31:47 169

原创 计算2个空间向量之间的夹角(固定系欧拉角XYZ)分量

前提:固定系欧拉角,旋转顺序XYZ。

2024-01-25 18:08:48 260

原创 二维点集的凸包点寻找算法

利用凸凹最直接的性质去判断,即:两个相近的凸点组成的直线,将会把他们的近邻点完全隔离在直线的同一侧。如此一来,先选取一个明显的凸点,如y坐标最小的点,以它为出发点,贪婪式搜寻即可。如下图所示:假设0点为y坐标最小的点,图中带编号的点为其近邻点(kd-tree加速查找),遍历编号1~13的点,当遍历到点1时,点0点1组成的直线将点2~点13完全隔离在直线同一侧(条件),满足这个条件后,将点1作为下一轮的出发点,重复上述过程即可。

2024-01-12 16:44:39 272

原创 SVD+QR分解求点云法向量

利用到了QR分解求解方程组的方法。

2023-12-03 03:06:31 524

原创 使用主成分分析之特征向量法求点云法向量

我们知道主成分分析会得到特征值、特征向量,最大的特征值及其对应的特征向量则为主成分,表示数据分布的主方向。最小特征值对应的特征向量则可以认为是空间点云的法向量。

2023-11-26 01:54:17 671

原创 Eigen:旋转向量(Angle-Axis)转换为四元素和旋转矩阵

绕固定系旋转,旋转的先后顺序为X、Y、Z。当然也支持XYZ的任意顺序旋转。

2023-11-12 00:31:30 704

原创 C++保留小数后几位

#include #include ofstream ofs;ofs.open(xxx);ofs

2023-11-08 12:01:29 143

原创 求两个(法)向量之间的rpy夹角

【代码】求两个(法)向量之间的rpy夹角。

2023-11-04 02:10:18 249

原创 使用C++构建安全队列

【代码】使用C++构建安全队列。

2023-10-29 12:57:10 481

原创 基于Eigen的椭圆拟合

原理就是根据数据构建求解方程组,分析其系数矩阵的性质进行求解。

2023-10-29 00:59:09 281

原创 LS最小二乘圆拟合

是关于列旋转(pivoting)的QR分解。它对所有矩阵都适用,而且速度也很快。

2023-10-29 00:44:34 234

原创 查找内轮廓(孔洞)

参数列表中有个数据结构参数:hierarchy(译层次结构),hierarchy是一个向量,其元素个数与查找到的轮廓总数相同,每一个元素中包含4个int类型数据hierarchy[i][0]~hierarchy[i][3]。分别表示:1表示同一级轮廓的下个轮廓的编号,如果这一级轮廓没有下一个轮廓,则为-1。2表示同一级轮廓的上个轮廓的编号,如果这一级轮廓没有上一个轮廓,则为-1。3表示该轮廓包含的下一级轮廓的第一个的编号,假如没有,则为-1。

2023-09-19 00:35:04 219

原创 点云配准算法之NDT

如果随机变量X满足正态分布(即 X∼N(μ,σ) ),则其概率密度函数为:其中的 μ 为正态分布的均值, σ2 为方差,这是对于维度 D=1 的情况而言的。对于多元正态分布而言,其概率密度函数可以表示为:其中u 表示均值向量,而∑表示协方差矩阵。协方差矩阵对角元素表示的是对应的元素的方差,非对角元素则表示对应的两个元素(行与列)的相关性。协方差矩阵对角元素表示的是对应的元素的方差,非对角元素则表示对应的两个元素(行与列)的相关性。

2023-08-28 23:14:24 285

原创 高斯牛顿(非线性最小二乘优化方法)

【代码】高斯牛顿(非线性最小二乘优化方法)

2023-08-06 23:49:07 195

原创 求二维离散点集的凸包点

这类求解最外围的点集问题,我们称之为凸包问题,光光是⽤⾁眼去观察的话,这种问题我们很快就能得出答案,并且能马上说出哪⼏个点是解,但是如果让你敲代码,去解决这类的问题,可能很多⼈会不知道如何去下⼿。在讲解凸包这类问题的解法前,我们⾸先要先讲下向量积这个数学⼩知识。了解了上⾯这个数学⼩知识后,我们现在可以正式开始着⼿去解决凸包问题了,⾸先我们先思考下,如果我们要去解决凸包问题,我们就必须要⼀个个去寻找最外围的点,万事开头难,第⼀个点该从哪⾥找起呢?

2023-07-30 21:44:13 315

原创 vscode中task.json和launch.json的关系

坐标的label要跟 右边的 "preLaunchTask"对应。

2023-07-30 13:56:36 511

原创 一些三维点云去噪算法

噪声:也称为孤立点/离群点/异常点,是指点云数据中的不相关或不希望存在的干扰信号或误差。噪声来源:环境光线的明亮程度、测量设备精度及系统误差、物体材料及表面的纹理和人为抖动等因素影响。

2023-07-13 00:39:59 618

原创 手写算法! 每个小球都是独立唯一的。 盒子的数量是动态不固定的,每个盒子内的小球数量也是不固定的(至少1个)。从N个盒子里取球,每个盒子中每次取出一个,罗列出所有组合。

每个小球都是独立唯一的。盒子的数量N是动态不固定的,每个盒子内的小球数量也是不固定的(至少1个)。从N个盒子里取球,每个盒子中每次取出一个,要设计一套算法,罗列出所有组合。

2023-07-01 03:18:38 147

原创 ubuntu 20.04安装cloud compare

sudo apt install snapsudo snap install cloudcompare

2023-06-26 16:37:39 966

原创 使用Eigen库进行(X-Y-Z固定角坐标系)下的矩阵、RPY角、四元素之间的转换

固定一词指的是旋转是在固定的(不运动的)参考坐标系中确定的。也成翻滚角(Roll)、俯仰角(Pitch)、偏转角(Yaw).运行结果和输入结果一致,前提是输入要在合理范围内!

2023-06-09 11:37:16 478

原创 明度补正(基于OpenCV实现)

光源不足够稳定,不同时刻排出的图片的平均亮度不足够稳定时,可以采用明度补正的办法。我们往往需要一张理想的模板图作为标准的亮度水平,其余的图要往模板上尽可能的接近。

2023-05-20 23:32:59 209

原创 最小二乘least-squares拟合曲线(三次或多次)

基于最小least-squares去拟合出多次曲线,考虑到了所有的样本点,因此这种方法对噪声敏感,尤其是遇到较为明显的噪声时,曲线的形状易受干扰。

2023-05-07 23:11:20 553

原创 基于OpenCV(C++)实现的RANSAC随机抽样一致性的曲线拟合(二次)

这篇文章与其类似,只是从拟合直线变为拟合曲线(二次)。有时候只懂得拟合直线可能是不够的,甚至只拟合二次曲线都不一定能满足实际需求。但好在我们可以触类旁通,举一反三。对于学习算法的人,最重要的就是理解它的思想,久而久之形成自己的思想体系,以后遇到问题的时候就能在脑子里闪现出方案。活学活用四个字很简单,但做起来却是很难很难,跟做人一样,活到老学到老。

2023-04-04 23:11:17 1247

原创 基于OpenCV实现的RANSAC随机抽样一致性直线拟合

该方法最早是由Fischler和Bolles提出的一种鲁棒估计方法,最早用于计算机视觉中位姿估计问题,现在已广泛应用于已知模型的参数估计问题中。其思想比较直观和容易理解,即可从坐标点中随机抽取两点,计算一条直线,然后判断所有的点与该直线的吻合程度,不断重复直到挑选出最好的。w为点集中内点的比例,一般可以在初始时设置一个较小值,如0.1,然后迭代更新;n为模型参数估计需要的最小点个数,直线拟合最少需要2个点。本文介绍基于ransac随机抽样一致性随机抽样一致性的直线拟合方法,涵盖一下的内容。

2023-03-16 20:12:26 859

原创 OpenCV中phase函数及其输出的角度

输出的四个角度分别为: 45(第一象限平分线) , 315(第四象限平分线) , 135(第二象限平分线) , 225度(第三象限平分线)。而c++中atan2函数是通过正切值返回弧度的,并通过判断x,y的正负决定象限,因此c++中atan2函数值域是从-Pi到Pi的。在图像坐标系 (图中XY)中:phase输出的角度范围为:0~360,顺时针旋转方向(来计算角度,计算精度大约为0.3弧度,当x,y相等时,angle为0。默认为false,即弧度,当置为true时,则输出为角度。phase函数根据函数。

2023-03-15 15:52:37 384

原创 VS2017中集成QT环境,Qt关键字下面出现红线,无法解析

可以看到,工程默认的附加包含目录已经含有Qt_INCLUDEPATH_,但是电脑上并没有Qt_INCLUDEPATH_这个环境变量。如果不想设置 Qt_INCLUDEPATH_环境变量,那么就在VS中添加附加包含目录。那么新建Qt_INCLUDEPATH_变量,然后重启VS即可。右键打开工程属性页。

2023-03-09 11:40:33 701

原创 如何在微软官网上下载旧版本的visual studio

4.到这里就可以点击下载自己想要的版本了。3.下拉到最后,找到“1.进入微软官网首页,2.下拉,直到找到“”,如下图,点击,进入下一界面。想在微软官网下载旧版本的VS.”,如下图,点击进入下一界面。

2023-03-01 23:59:28 3019

转载 Max Pooling和 Average Pooling的区别,使用场景分别是什么?

最大池化可以提取特征纹理, 最大池化提取边缘等“最重要”的特征平均池化可以保留背景信息,平均池化提取的特征更加smoothly当特征map中的信息都具有一定贡献的时候使用AvgPooling,例如图像分割中常用global avgpool来获取全局上下文关系,再比如网络走到比较深的地方,这个时候特征图的H W都比较小,包含的语义信息较多,这个时候再使用MaxPooling就不太合适了, 是因为网络深层的高级语义信息一般来说都能帮助分类器分类。

2023-01-29 16:17:48 1695

原创 图像旋转任意角度及其后图中点坐标的对应变化

图像中有一个点P, 将图像旋转任意角度(默认旋转点为图像中心)后,求旋转后的图像?求原图中的点P在旋转后图像中的坐标?问题分为2大步去解决。1)得到旋转矩阵.主要是借助于getRotationMatrix2D算子。getRotationMatrix2D得到的矩阵为2行3列。2)计算旋转后图像的新大小,旋转后图像的宽高发生变化。此外,图像的中心位置也发生偏移,需要进行偏移量调整。

2023-01-28 14:17:58 891

Windows C++访问SQL SERVER数据库项目实战案例

Windows C++访问SQL SERVER数据库项目实战案例。 VS2015工程。 实现 连接、读取、修改等数据库常用功能,封装完整。 实测可用!!! Windows C++访问SQL SERVER数据库项目实战案例。 VS2015工程。 实现 连接、读取、修改等数据库常用功能,封装完整。 实测可用!!! Windows C++访问SQL SERVER数据库项目实战案例。 VS2015工程。 实现 连接、读取、修改等数据库常用功能,封装完整。 实测可用!!! Windows C++访问SQL SERVER数据库项目实战案例。 VS2015工程。 实现 连接、读取、修改等数据库常用功能,封装完整。 实测可用!!! Windows C++访问SQL SERVER数据库项目实战案例。 VS2015工程。 实现 连接、读取、修改等数据库常用功能,封装完整。 实测可用!!! Windows C++访问SQL SERVER数据库项目实战案例。 VS2015工程。 实现 连接、读取、修改等数据库常用功能,封装完整。 实测可用!!! Windows C++访问SQL SER

2022-09-05

棋牌格标定板图片(张氏标定法)

可直接用于相机的内外参标定

2022-02-14

棋盘格标定板图像(可用于张氏标定法)

可以直接用于进行相机的内外参标定

2022-02-14

空空如也

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

TA关注的人

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