自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_656236576的博客

一个菜鸡的救赎之路

  • 博客(125)
  • 资源 (3)
  • 收藏
  • 关注

原创 欧拉角(Euler angles)详解

欧拉角是由 Leonhard_Euler 引入的三个角度,用于描述刚体相对于固定坐标系的方向。它们也可以表示物理学中移动参考系的方向或三维线性代数中基的方向。欧拉角是一种基于三种较简单旋转运动(称为俯仰、滚动和偏航)创建一般旋转的机制。如下图,一架沿x轴方向飞行的飞机可以通过转向左或转向右(偏航),朝上飞或朝下飞(俯仰),或简单绕x轴旋转(滚动)来改变飞行方向。可以看出俯仰、偏航、滚动分别就是绕z轴、y轴、x轴旋转,上面已经给出了这三种特殊旋转的旋转矩阵。

2024-08-16 15:47:46 723

原创 旋转矩阵详解

利群与李代数:so3是旋转的矩阵集合,SE3是刚体变换的矩阵集合。(旋转矩阵相乘后还会保持旋转矩阵的特性即他还是一个旋转矩阵)假设绕XYZ三个周旋转的角度分别为α ,β ,γ ,

2024-08-16 14:47:09 205

原创 PCL函数库摘要——3D点云特征描述与提取

类FPFHEstimation实现了FPFH(Fast Point Feature Histogram)描述子计算算法,该算子是局部点特征描述子之一,计算速度简单、并且不失描述性,主要针对点云配准中求对应点对而提出,后续实例中也讲到FPFH、SPFH概念,详细见Fast .Point Feature Histograms (FPFH) for 3D Registration。类SHOTEstimationOMP是SHOT算子基于OpenMP并行计算算法的实现,其接口详细参考类SHOTEstimation。

2024-08-12 16:41:39 717

原创 PCL函数库摘要——k-d tree与八叉树

类OctreePointCloudOccupancy实现了管理一八叉树,其叶子节点不存储任何数据,只是对输入点云所占据的空间通过叶子所处的体素来进行标志,这样就可以对点云所占据空间的情况进行评估和检测。类OctreePointCloudDensity实现了管理一八叉树,其叶子节点并非存储点云,只是对处于其叶子体素中的点云个数进行存储,即整个八叉树的叶子节点存储了输入点云的密度空间分布。类OctreePointCloudSinglePoint管理一八叉树,该八叉树叶子节点,存储在该节点体素中的单个点的索引。

2024-08-12 16:35:35 928

原创 PCL函数库摘要——点云曲面重建

PCL库种surface模块是用来对三维扫描获取的原始点云进行曲面重建的,该模块包含实现点云重建的基础算法与数据结构。

2024-08-12 16:31:44 774

原创 PCL函数库摘要——深度图像

RangeImagePlanar类来源于最原始的深度图像,但又区别于原始的深度图像,因为该类不使用球形投影方式,而是通过一个平面投影方式进行投影(照相机一般采用这种投影方式)。因此,对于已有的利用深度传感器获取深度图像来说较为实用,例如现有的立体照相机或者ToF照相机本身提供深度图像,这样就不需要将原始的深度图像转换为点云并再转换为球形投影的深度图像。RangeImage 类继承于PoinyCloud,主要功能是实现从一个特定视点得到的三维场景的深度图像。

2024-08-12 16:27:36 477

原创 PCL 采样一致性模型介绍

采样一致性可以简单高效的检测出一些具有数学表达式的目标模型。PCL中的sample consensus模块中不仅包含各种的采样一致性估计方法,也包含一些已经编写好的数学模型,下面主要介绍一下PCL中的采样一致性模型。

2024-08-12 16:25:59 1093

原创 PCL 采样一致性方法介绍

默认情况下,如果不熟悉上述大多数估计器及其操作方式,使用RANSAC进行测试是万无一失的方法。

2024-08-12 16:14:57 661

原创 PCL函数库摘要——可视化

p,P:切换到点渲染模式。类PointCloudGeometryHandlerCustom实现了从给定点云中提取用户自定义字段的值,并用于VTK中可视化。类PointCloudColorHandlerGenericField实现从点云的一个普通字段生成颜色,并用于VTK中可视化。类PointCloudGeometryHandler实现了从给定点云中提取XYZ三个字段的值,并用于VTK中可视化。类pcl::visualization::RangeImageVisualizer实现对深度图像的可视化。

2024-08-12 16:11:02 669

原创 PCL函数库摘要——点云分割

类SACSegmentation< PointT >是利用采样一致性算法实现分割类,定义了所有相关的函数接口,该类的输入为设定需要分割的模型类型与相关参数,输出为最终估计的模型参数,以及分割得到的内点集合,利用不同的模型可以实现对点云中包含的不同类型的物体的分割,例如直线、平面、圆柱、圆球等的分割提取,在机器人自动识别提取领域应用非常方便,稳健性也非常好。

2024-08-12 16:06:56 593

原创 PCL函数库摘要——点云配准

/ 实现对应点的大小比较的仿函数:输人两个对应点对,比较它们的源点云索引后,输出真假值,若前者比较小输出true,否则输出false.// 实现对应点的大小比较的仿函数:输人两个对应点对,比较它们的目标点云索引后,后输出真假值,若前者比较小输出true,否则输出false。// 实现对应点的大小比较的仿函数:输入两个对应点对,比较它们的距离后输出真假值,若前者比较小输出true,否则输出false.-

2024-08-12 16:03:14 743

原创 PCL函数库摘要——点云滤波

类StatisticalOutlierRemoval,通过对查询点与邻域点集之间的距离统计判断来过滤离群点。类 BilateralFilter是对双边滤波算法在点云上的实现,该类的实现利用的并非XYZ字段的数据进行,而是利用强度数据字段进行双边滤波算法的实现,所以在使用该类时点云的类型中字段必须有强度字段,否则无法进行双边滤波处理,详细算法信息请参考C. Tomasi and R. Manduchi的文章Bilateral Filtering for Gray andColor Images。

2024-08-12 15:56:18 383

原创 PCL函数库摘要——关键点

类SIFTKeypoint是将二维图像中的SIFT算子调整后移植到3D空间的SIFT算子的实现。类HarrisKeypoint2D实现基于点云的强度字段的 harris关键点检测子,其中包含了多种不同的harris关键点检测算法的变种,例如由JA Noble,Lowe、Tomasi等提出的Harris关键点检测算法。类HarrisKeypoint3D和 HarrisKeypoint2D类似,但是它没有在点云的强度空间检测关键点,而是利用点云的3D空间的信息表面法线向量来进行关键点检测。

2024-08-12 15:49:29 301

原创 PCL函数库摘要——IO模块

以上3个类分别封装了Kinect,Primesense,XtionPro相关设备操作和数据获取操作实现,其详细接口参考其父类OpenNIDevice的关键函数说明。封装了利用ONI文件回放虚拟类kinect设备的操作和数据获取操作实现,其详细接口参考其父类OpenNIDevice的关键函数说明。以上两个类分别是PCD、PLY文件格式读入接口的实现,详细参考其父类pcl: :FileReader。以上两个类分别是PCD、PLY文件格式写出接口的实现,详细参考其父类pcl: :FileWriter。

2024-08-12 15:38:22 782

原创 PCL-数据类型

Point是一个简单的XYZ坐标加intensity的point类型,xyz未与intensity位于同一个结构体。PointXYZ是使用最常见的一个点数据类型,因为它只包含三维xyz坐标信息,这三个浮点数附加一个浮点数来满足存储对齐,用户可以利用points[i].data[0],或者points[i].x访问点的x坐标值。PointWithViewpoint除了vp_x,vp_y,vp_z以三维点表示所获得的视点之外之外,其余与PointXYZI结构类似。

2024-08-12 15:16:02 398

原创 pcl-滤波模块

此算法原理是在被滤波的点云中创建一个三维体素栅格(可以将体素栅格想象成微小的空间三维立方体的集合),然后在每个体素(即三维立方体内),用体素中所有点的重心来近似显示体素中的其他点,这样该体素内所有点就用一个重心点表示。对于输入的点云数据中对点与临近点的距离分布计算,对于每个点,我们计算他到他所有临近点的平均距离,假设得到的结果是一个高斯分布,其形状由均值与标准差决定,平均距离在标准范围(由全局距离平均值和方差定义)之外的点,可被定义为离群点并可从数据集中去除掉。不如体素中的重心代替体素准。

2024-08-12 09:29:33 323

原创 3D处理关键点检测之ISS(内蕴形状特征)

ISS(Intrinsic Shape Signatures)是由Yu Zhong于2009年提出的一种三维形状描述子,用于描述局部或者半局部区域的点云,局部区域可以理解为以一个点云中某点为球心,以一定半径构成的可以包含多个内点的球形区域,半局部则是半个球形区域。ISS可用于不同视角点云的配准,快速姿态估计,三维物体识别与检索。该方法具有稳定,可重复性,信息丰富的特点。

2024-06-12 10:08:11 224

原创 get_object_model_3d_params-----返回3D对象模型的属性。

如果3D对象模型是圆柱体(参见gen_cylinder_object_model_3d),则返回值是中心[x_center, y_center, z_center]的(x-, y-, z-)坐标,圆柱体主轴[x_axis, y_axis, z_axis]的(x-, y-, z-)方向,以及圆柱体的半径[radius]。如果3D对象模型是sphere或box类型的基元(参见gen_sphere_object_model_3d或gen_box_object_model_3d),则返回对象模型的中心点。

2024-06-11 08:55:42 1169

原创 rigid_trans_object_model_3d----------对3D对象模型应用刚性3D转换

rigid_trans_object_model_3d如果在pose (N:1)中只传递一个变换矩阵,则用相同的姿态转换一个或多个3D对象模型。rigid_trans_object_model_3d对3D对象模型应用刚性3D变换,即旋转和平移,并返回转换后的3D对象模型的句柄。转换由Pose中给出的姿态来描述,形式如下,其中mcsi表示输入对象模型的坐标系,cst表示转换后模型的坐标系,例如,场景的坐标系(请参见转换/姿态和“解决方案指南III-C - 3D视觉”)。

2024-06-11 08:20:43 611

原创 协方差矩阵,残差,误差

2024-06-11 08:17:50 116

原创 halcon3d算子之get_circle_pose详解

get_circle_pose -从圆的2D投影角度确定圆的3D姿态。

2024-06-05 11:10:09 1061

原创 halcon3D入门知识

2024-06-05 10:24:41 130

转载 halcon3d算子总结(简单描述算子)

halcon3d包含以下几个模块。

2024-06-05 10:14:16 47

原创 halcon算子之prepare_object_model_3d详解

为此,必须设置通用参数’xyz_map_width’或’xyz_map_height’,以指示点云是按行排序还是按列排序,并定义图像尺寸(参见下面的’xyz_map_width’和’xyz_map_height’)。这在使用sample_object_model_3d、surface_normals_object_model_3d或准备3D对象模型进行基于表面的匹配(例如,平滑、去除异常值和减少域)时尤其有益。图像的高度自动计算。在distance_object_model_3d的文档中有更详细的描述。

2024-06-05 09:57:31 779

原创 halcon算子register_object_model_3d_pair详解

为此,必须设置通用参数’xyz_map_width’或’xyz_map_height’,以指示点云是按行排序还是按列排序,并定义图像尺寸(参见下面的’xyz_map_width’和’xyz_map_height’)。这在使用sample_object_model_3d、surface_normals_object_model_3d或准备3D对象模型进行基于表面的匹配(例如,平滑、去除异常值和减少域)时尤其有益。图像的高度自动计算。在distance_object_model_3d的文档中有更详细的描述。

2024-06-05 09:49:35 729

原创 halcon算子详解之find_surface_model

对于每个发现的表面模型实例,其姿态都是在场景坐标系中给出的,因此姿态的形式是,其中scs表示场景的坐标系(通常与传感器的坐标系,相机坐标系相同),mcs表示模型坐标系(这是一个3D世界坐标系),参见变换/姿态和“解决方案指南III-C - 3D视觉”。注意,参数’pose_ref_dist_threshold_edges_rel’和’pose_ref_dist_threshold_edges_abs’中只有一个应该被设置。请参阅上面的’max_overlap_dist_rel’,以获得该参数效果的描述。

2024-06-05 09:45:10 1135

原创 halcon算子详解之Create_surface_model

减小该值会导致更精确的姿态优化,但会导致更大的模型和更慢的模型生成和匹配。例如,3D对象模型可以先前使用read_object_model_3d从文件中读取,或者使用xyz_to_object_model_3d创建。为了减少嘈杂的3D数据,你可以,例如,使用smooth_object_model_3d或simplify_object_model_3d。为此,找到与模型本身非常相似的姿态,即只能通过模型的非常小的属性(如钻孔)来区分的姿态,并且可以通过find_surface_model进行混淆。

2024-06-05 09:33:01 634

转载 PnP算法详解

PnP算法详解

2024-04-29 14:18:20 393

原创 最小二乘法

最小二乘法

2024-04-28 10:02:04 176

原创 罗德里格斯公式(将矩阵转换成一个向量)

罗德里格斯公式(它为旋转向量的计算和旋转矩阵的表示提供了一种简洁高效的方式。)

2024-04-28 09:56:02 145

原创 克莱姆法则

克莱姆法则

2024-04-28 09:52:20 359

原创 范德蒙行列式(公式推导)

范德蒙行列式公式推导

2024-04-28 09:49:07 167

原创 贝叶斯(Bayes)法则

贝叶斯法则

2024-04-28 09:43:16 260

原创 halcon学习记录之亚像素轮廓

在图像处理中,二次或多次插值算法可以在相邻像素的位置之间插入虚拟像素,从而得到更丰富和细致的图像信息。这些虚拟像素的值是通过对相邻实际像素值的计算获得的。这些算法通过考虑相邻像素之间的灰度或颜色变化,以及它们的空间关系,生成更精确的图像表示。通过引入亚像素,可以在图像中捕捉到更多的细节,提高测量的精度。亚像素是在数字成像领域,由于物理上已经无法在相邻像素之间增加更多实际的感光单元,通过插值算法引入虚拟像素以在图像中提高测量的精度。轮廓的多边形逼近指的是:使用多边形来近似表示一个轮廓。

2024-04-10 09:56:04 299

原创 const与&修饰函数形参

C++中,const与&修饰函数形参的可能情况有四种;C语言中,情况只有1)和3)两种。string str这是最普通的传值调用,首先对原str进行一次拷贝,会调用拷贝构造函数。str可以被修改,但修改的只是复制的值,而不会影响到本身的str。string &str这是引用,传递过来的就是str本身,在函数里修改str的话都会修改str本身,但不会调用拷贝构造函数。const string str传值调用,str是复制的值且不能被修改,但会调用拷贝构造函数。co

2021-07-29 13:42:15 1384 1

原创 BASLER Pylon 抓取策略

One by One Grab Strategy 逐个抓取策略当使用 one by one 抓取模式时,图像按其获取顺序处理。相机抓取引擎实例将空缓存队列中的缓存取消,并将空缓存排入低级别API流抓取器(1)。相机设备被触发(2)。相机设备获取图像,图像被传输到计算机,然后抓取到一个空的缓存中。相机抓取引擎实例线程被通知一个被填充缓存可用。此填充缓存被抓取引擎线程(3)接收,并将其放入到输出队列。在RetrieveResult () 方法中等待的应用程序线程被通知到,它停止等待抓取结果并接收填充

2021-05-13 09:55:09 793

转载 如何用sql语句复制一张表

如何用sql语句复制一张表1、复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除。不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、Extra(auto_increment)等属性。需要自己用"alter"添加,而且容易搞错。2、只复制表结构到新表CREATE TABLE 新表 SELECT * FROM 旧表 WHERE

2021-04-06 17:34:38 18954

原创 day1

1.int被设置为对目标 计算机而言最为“自然”的长度。自然长度(natural size)指的是计算机处理 起来效率最高的长度。

2021-03-20 11:21:24 139

原创 mfc中CreateThread(),

创建线程CreateThread线程创建函数CreateThread修改说明:CreateThread()l来创建线程其实是一种不太好的方法,在实际使用中尽量使用_beginthreade()来创建线程,因为更加的安全函数的原型:HANDLE WINAPI CreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwStackSize, _

2021-02-26 08:34:16 2311

原创 c++命名规则

变量命名规则是为了增强代码的可读性和容易维护性。以下为C++必须遵守的变量命名规则:变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。第一个字母必须是字母或者下划线开头。不能使用C++关键字来命名变量,以免冲突。变量名区分大小写。变量命名规则:一.用最短字符表示最准确的意义。二.使用变量前缀。1.整型前缀  int nId;          //int前缀:n  short sId;        //short前缀:s  unsigned int

2021-01-26 15:16:33 2113

ABB_pc_sdk帮助文档中文版.7z

ABB_pc_sdk帮助文档中文版

2021-07-02

PC_SDK帮助手册中文版.pdf

本资源是将ABB机器人的pcsdk帮助文档翻译成了中文,其中支持c#与vb.net开发语言,如果有兴趣,可以下载看一看,里面对每种应用都有c#和vb的实例编写。

2020-05-05

Switch_type_program.zip

c#与ABB机械手通讯,本程序是基于RobotWare6.03做的通讯,如果需要高版本,下载对应的dll文件引用就好,新老版本库函数应该是一样的。本程序实现了对robot中一个num变量的读写,程序中有注释,并监控这个变量的改变,这个变量的改变会触发值改变事件。

2020-04-24

空空如也

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

TA关注的人

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