自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Z's Palace

专注于计算机视觉,用心灵的窗口“照亮”世界

  • 博客(499)
  • 资源 (10)
  • 收藏
  • 关注

原创 PCL学习资料

点云库PCL(Point Cloud Library)是一个功能强大的开源C++库,用于处理三维点云数据。PCL提供了丰富的算法和工具,可以用于点云数据处理、过滤、特征提取、配准、分割、识别和重建等多种应用。,由计算机视觉专家R. B. Rusu编写。这个项目中包含了多个案例,包括数据加载、滤波、特征提取、配准、分割、重建和可视化等。,涵盖了大量的示例和应用场景。可以从这里开始学习和掌握PCL库的基本概念和用法。

2022-03-06 14:24:45 596 1

原创 Playing with OpenCV

一、从双目立体视差图中重建三维点云 1.【视差与深度信息】2.【用VS+Opencv3.1从双目立体视差图中重建三维点云】二、斑点检测Opencv中提供了SimpleBlobDetector的特征点检测方法。 Reference:1.【 Opencv中SimpleBlobDetector的使用(斑点检测)】2.【Opencv2.4.9源码

2017-12-04 19:43:29 1052

原创 halcon基础知识

在算子编辑窗口,main所在行右边,有四个按钮,将鼠标移到该位置,将有中文提示,按提示点击按钮。浅蓝色:外部函数——HDevelop函数文件,可在所有Halcon程序中使用。Halcon自带的训练集数据是亮色背景上的暗色文字。紫色:内部函数——本地程序函数,只在当前程序使用。2.减法:常用于检测两幅或多幅图之间的变化。4.除法:矫正成像设备的非线性影响。1.加法:降低图像中的随机噪声。3.乘法:遮住图像的指定部分。深蓝色:图像获取和处理。

2016-10-14 15:11:08 6081

原创 椭圆距离计算的简单方法

事实证明,接近最优的错误猜测将需要额外的迭代才能以随机方式远离初始猜测,最佳的错误猜测将会陷入困境。我已经证明,出于相当详细的原因,只要您不从最佳错误猜测开始,算法就会收敛。无需详细说明,较紧的曲线将导致较小的曲率半径,而较浅的曲线将导致较大的曲率半径。事实证明,这是一个足够好的近似值,但它在椭圆的顶点(尖端)处确实受到影响。但是,在极端的偏心上,算法最终将失败。提供了非常好的估计,因此论文声称该算法稳健且收敛速度快的说法是非常可信的。该论文的前提是,一个超大的圆将与椭圆相交至少两次。

2024-09-28 17:22:33 103

原创 PCL区域生长分割

该算法的目的是合并在平滑度约束方面足够接近的点。因此,该算法的输出是簇的集合,其中每个簇被认为是同一光滑表面的一部分的一组点。该算法基于点法线之间的角度的比较。首先,让我们看看该算法是如何工作的。如果各点法线之间的偏差小于平滑度阈值,则建议将它们归入同一簇(新点–被测试点–将被添加到簇中)。算法在内部结构中需要K最近邻搜索,所以这里是提供搜索方法并设置邻域数量的地方。直到点云中没有未标记的点,算法会选取曲率值最小的点并开始区域的增长。如果该值小于曲率阈值,那么算法将使用新添加的点继续聚类。

2024-08-25 07:55:04 83

原创 Halcon玩转机器视觉专栏特殊声明

A:CSDN即时通信和回复机制不是特别完善,所以如果想获得即时反馈,建议还是用知识星球。鉴于很多童鞋在订阅专栏过程中,对于专栏中涉及到的资料(比如。Q:获取到资料和源码有相关说明文档吗,包括售后服务之类的?Q:如果我只是对其中一个资料或源码感兴趣,可以单独付费吗?Q:如果不订阅专栏如何获取资料和源码?Q:是不是订阅后就可获取资料和源码?C#联合Halcon视觉框架。

2024-08-11 09:15:50 207

原创 二维凸包算法

凸多边形是指所有内角大小都在0π[0, π]0π范围内的简单多边形。Andrew算法是Graham算法的改良版,好写一点,据说比Graham快一点。Andrew并不难,就两步:第一步: 首先将所有点排个序,以x坐标为第一关键字,以y坐标为第二关键字。第二步: 从左至右维护上半部分的边界,从右至左维护下半部分的边界。那么问题的关键就是如何维护来找到这个边界呢?

2024-08-09 20:03:16 89

原创 CloudCompare—点云切片

主要通过设置距离阈值(包围盒厚度)、基准平面(有界或无界)参数分割出点云数据,然后将分割的点云数据投影到平面上,投影数据即为生成的截面数据,并输出截面数据的数量、包围盒、中心位置或将截面数据连接为多义线等结果,工具的算法原理如图所示。类型很可能是自定义的,用于存储二维点的坐标,并可能包含一些额外的索引信息。的函数,其目的是将一组三维点投影到一个二维平面上,并将这些投影后的二维点存储在传入的。类型的向量)中提取并构建一个二维凸包,并将这个凸包的点以指针的形式存储在。

2024-08-09 19:59:39 258

原创 3D,从无知到无畏

根据自己学习3D一路走来的心路历程,以及在工作和学习过程中对3D的不断思考和总结,详细阐述了3D的学习路线图,并以图文并茂的方式来**普及3D的算法原理、实际使用过程中的经验总结,并教会大家如何根据需求查找并阅读相关论文,以及拿到源码之后如何精准解析**,适合基础进阶和想不断勇攀高峰的3D开发人员!

2024-08-04 16:04:20 254 1

原创 深度图进行运算检测物体表面粗糙度

除法运算:将两幅图像的像素值相除,得到新的像素值。**除法也可以用于图像差异的检测,这种差异的检测不同于图像的减法,该差异更多的体现像素值变化的比率。图像运算指的是对图像进行各种数学运算的过程,常见的图像运算包括加、减、乘、除、取反、逻辑运算等。加法运算:将两幅图像的像素值相加,得到新的像素值。所以为了能准确地测量物体表面粗糙度信息,需要通过图像运算的方式,增强这些特征,从而进行进一步的测量。减法运算:将两幅图像的像素值相减,得到新的像素值。乘法运算:将两幅图像的像素值相乘,得到新的像素值。

2024-08-04 15:38:05 78

原创 3D,点云拼接2

由于错误的对应关系对于最终的刚体变换矩阵的估算会产生负面的影响,所以必须去除它们,于是我们使用随机采样一致性( Random Sample Consensus , RANSAC )估算或者其他方法剔除错误对应关系,最终只保留一定比例的对应关系,这样即能提高变换矩阵的估算精度也可以提高配准速度。另外,您也可以将每个点或子集作为关键点。辅助标志点:通过在被测物体表面粘贴标签,将这些标签作为标志点,对多次测量得到的点云数据进行配准时,对这些有显著特征的标签进行识别配准,代替了对整体点云的配准,提高效率,精确度。

2024-08-04 10:15:44 48

原创 3D,那些你需要知道的硬件知识(2)

​ 常见的三维视觉技术,包含双目、ToF、激光三角、结构光等,如下图:​ 双目、ToF、结构光(散斑)的精度为 mm 级,多见于消费领域,如:导航避障,VR/AR,刷脸支付等​ 线激光、结构光(编码)的精度是 um 级,主要应用在工业领域,如:表面缺陷检测、三维测量等​ 另外,还有 nm 级精度的光谱共焦技术,可用于透明材质物体的三维测量​ 按照激光投射的不同模式,激光三角法有点激光、线激光、多线激光、激光网格等​ 为了直观的了解激光三角法,用点激光位移传感器,演示

2024-08-04 09:50:23 977

原创 PCL common中常见的基础功能函数

这里主要介绍一下基本的常见的功能函数,这些函数其实用C++也可以自行实现,在PCL中提供了更多的重载接口,方便使用。对于各种点,特征的类型的数据结构在这里就不再一一举例说明,这需要根据实际情况而定。标准的C以及C++类,是其他common 函数的父类。定义了所有PCL实现的点云的数据结构的类型。定义了中心点的估算以及协方差矩阵的计算。定义了标准的C方法计算矩阵的正则化。定义了标准的C接口的角度计算函数。定义一些基本的几何功能的函数。定义一些随机点云生成的函数。定义线与线相交的函数。定义了时间计算的函数。

2024-06-22 09:09:23 320

原创 一种快速高效的点云表面重建算法

贪婪投影算法()是M. Gopi等人[1]于2003年提出的点云表面重建算法。该算法从一个数据点RRR开始,找到与RRR相邻的一组数据点CRC_RCR​,连接RRR与CRC_RCR​,就可得到数据点RRR的所有邻接三角形(顶点中包含RRR的三角形)。然后以广度优先搜索的形式,遍历CRC_RCR​中的数据点,找到这些数据点的邻接三角形,直到遍历完所有数据点。该算法的重点在于如何连接数据点RRR和CRC_RCR​以生成高质量三角形(避免小角度)

2024-06-22 09:07:11 487

原创 优秀开源工程C++

迷你的C++11 JSON库。C++ JSON 解析器。

2024-06-16 21:20:22 169

原创 C#联合Halcon机器视觉框架源码—升级版

相较于之前的NxtVision,本软件代码架构更加合理,且新增。对源码有需求的,订阅本专栏后,私信我领取。、原来的vb脚本改为。

2024-06-16 21:09:50 380 1

原创 CloudCompare中CCCoreLib模块介绍

是一个3D点云(和三角化网格)处理软件,它最初设计用于在两个3D点云之间(例如通过激光扫描仪获得的点云)或点云和三角化网格之间进行对比,它依赖于一个八叉树结构,该结构针对这个特定用例进行了高度优化,它还用于处理超大的点云(通常超过1000万个点,使用2GB内存最多可达1.2亿个点)。其核心的算法库CCLib库,这个库提供用于处理三维点云数据的数据结构和算法。它是存储库的一部分(称为“CCLib”),也就是源码中CC文件下的内容。

2024-06-10 09:47:39 130

原创 Halcon中文参考手册

Halcon中文参考手册。

2024-05-26 19:50:18 274

原创 PCL点云边界提取——源码解析

在PCL中集成了一个非常经典的点云边缘检测算法,这个算法也在PCL点云边界提取这篇博客中讲解了。该文章只介绍了AC算法的原理及接口调用。那么它的内部具体是如何实现的呢?如果知道了它的具体实现,那么在某些情况下,就可以直接在它的源码基础上做一些小的改动,就能够更好地适应不同的需求了。这里只对AC边缘检测算法做个源码解析及修改后调用的过程记录,若以后需要解析其他PCL功能,也可以借鉴一下。

2024-05-24 21:10:29 469

原创 PCL 常用小知识

其思想就是:将原始数据插入到flann的kdtree中,寻找keypoints的最近邻,如果距离等于0,则说明是同一点,提取索引即可。如果删除的点太多建议用上面的方法拷贝到新点云,再赋值给原点云,如果要添加很多点,建议先resize,然后用循环向点云里的添加。pcl中计算程序运行时间有很多函数,其中利用。就可以以秒输出“程序段”的运行时间。中的无效点是指:点的某一坐标值为。

2024-05-24 17:09:37 79

原创 3D,点云平面拟合

计算所有数据点到拟合模型的距离,并将距离小于阈值的点标记为内点。以上就是点云平面拟合的算法原理介绍,若有不当之处,欢迎指出。为输入的三维点坐标。利用正规方程组的解公式,即可求得。:利用随机选择的数据点拟合模型,这里是平面模型。:使用所有内点重新拟合最佳模型,以提高模型精度。:重复上述步骤多次,选择内点数目最大的模型。,使得数据点到该平面的总距离最小。:从数据集中随机选择最少数量的数据点()作为模型参数的初始估计。最小二乘拟合平面是一种通过。来估计平面参数的方法。,我们要找到一个平面。

2024-05-14 21:26:20 291

原创 3D,点云下采样

每隔固定的点数采样一次。相比于体素的采样方法,点云均匀采样后的点数是固定可控的,而体素采样后的点云数量是不可控的。最远点采样是较为简单的一种,首先需要选取一个种子点,并设置一个内点集合,每次从点云中不属于内点的集合找出一点距离内点最远的点,如下图,这里的距离计算方式为该点至内点所有点的最小距离。同样需要将点云空间划分,不同的是,在均匀采样中是以半径为r的球体。选取距离球体中心最近的点作为采样点替代落在球体中的点集,此时,采样点的坐标为源点云中一点的坐标,不同于体素下采样中使用质心进行替代而产生新的点坐标。

2024-05-14 21:22:09 184

原创 3D,kd-tree算法原理

作为三维领域中一个重要的数据来源,点云主要是表征目标表面的海量点的集合,并不具备传统网格数据的几何拓扑信息,所以点云数据处理中最为核心的问题就是,实现。几何拓扑是计算几何学中的一个重要概念,指的是描述几何形状的空间结构和连接关系的数学模型。在几何拓扑中,主要考虑的是几何对象的形状、边界、顶点以及它们之间的关系,而不涉及具体的度量或尺寸。几何拓扑可以帮助我们理解和描述各种几何形状之间的关系,以及它们如何相互作用和变换。它在计算机图形学、CAD(计算机辅助设计)、几何建模等领域都有重要应用。

2024-04-30 18:40:36 324 1

原创 CloudCompare—点云几何体分割

通常的做法是,在判断点是否在多边形内部之前,先检查点是否在多边形的边界上。需要注意的是,这段代码似乎是基于一个特定的算法(可能是由W. Randolph Franklin提出的)来判断点是否在多边形内部。对于在多边形上的点,判断方法稍微有些不同。因为多边形的边界上的点可能被计算为与多边形内部的点具有相同的交点数量,这会导致误判。它首先检查一个多边形是否完全在视口内,然后遍历点云中的每个点,检查其是否在多边形内,并根据。通过这种方法,可以在不需要检查多边形的所有顶点的情况下快速判断点是否在多边形内部。

2024-04-17 18:50:00 382

原创 CloudCompare 整体架构

上面这些主要模块中,带有 “Q” 开头的说明这个模块依赖 QT。下面自底向上逐个介绍这些模块。

2024-04-17 11:07:45 175

原创 EasyCloud软件简介

运行环境:Win10 + PCL1.9 + VTK8.1 + Qt5.12 + VS2017基于PCL点云库的三维点云数据处理软件本软件的用户界面主要包括以下几个部分(如图1):[1]菜单栏,将软件功能模块划分为不同菜单,包括文件、视图、显示,点云简化、特征提取、三维重建以及帮助等;[2]工具栏,常用工具按钮,如打开,保存,更改点云颜色等;[3]点云文件管理窗口,用资源树的形式组织管理当前的点云文件;[4]属性窗口,记录点云文件个数、点得个数,颜色等常用属性;

2024-03-22 10:33:37 172

原创 C++由动态链接库dll生成lib文件

在msvc中,对于动态库的使用,通常有两种方法,一种方法是动态加载,在程序运行过程中,使用LoadLibrary()、GetProcessAddress()和FreeLibrary()三个函数动态的对动态库进行加载和卸载,此方法在编译运行时只需要dll文件的支持即可;另一种方法是静态加载,静态加载不仅需要dll文件,在程序编译时也需要dll文件对应的lib文件,这个lib文件会记录动态库名称与函数入口,使程序开始运行时能够正确的对动态库文件进行载入并使用。

2024-03-14 19:33:25 686

原创 C#联合Halcon机器视觉框架源码

本软件参考EV开发,共用模块,基于WPF+Halcon,是非常不错的学习框架,需要什么功能可以自己添加,插件式开发非常方便。

2024-03-14 18:59:58 2047 24

原创 Github之使用已有项目创建代码仓库

【代码】Github之使用已有项目创建代码仓库。

2024-03-10 18:40:14 421

原创 What I’ve Learned in 45 Years in the Software Industry

notup。

2024-03-06 21:21:19 374

原创 设计模式之兼容不同厂家的相机

仔细看上面的代码,会发现一个问题,每一个实例工厂负责生产一个实例产品,也就是一个产品对应一个工厂,一个工厂对应一个产品,那么小米不仅仅生产相机,还生产耳机,智能手环,智能插座等等相关的小米产品簇,不可能给这每一个产品都创建一个工厂类,那样的话代码中的类就太多了,不好维护,而且也不符合实际情况。实际上小米或者华为的工厂里面,有相关联的产品簇都是在一个工厂完成创建的;写完后,初级程序员恍然大悟,抽象工厂模式把一个产品簇的产品放在一个工厂类中去创建,不仅大大减少了工厂类的个数,更符合现实中工厂生产产品的模式。

2024-02-24 16:13:06 432

原创 使用 Windows 调试器查找 GDI 泄漏

本文是有关使用Windows调试器查找和修复GDI句柄泄漏的演练。Windows调试器应该是最后的手段,首先在整个代码库中搜索并检查这两个函数调用之间的 GDI 代码是否有未删除的句柄并将其删除。使用任务管理器,我们可以在“详细信息”选项卡页上添加“GDI 对象”列,以获取每个进程当前打开的 GDI 句柄的数量。一个进程最多可以有 10000 个打开的 GDI 句柄。所有进程的系统范围限制为 65535。右键单击标题以选择要显示的列。选中“GDI 对象”选项以添加到“详细信息”选项卡并关闭对话框。

2024-01-08 21:34:13 956

原创 VS权限到期后咋办? — Visual Studio Product Keys

VS权限到期后咋办?

2023-12-28 09:44:27 687

原创 Windows10系统下CGAL的安装编译

在工具栏中打开Qt VS Tools–>Qt Options–>Add添加msvc_2017_64 = .\Qt5.12\5.12.0\msvc2017_64。(2)安装完成后,重启VS,点集文件->新建->项目->Qt就可以关于Qt的信息;(1)打开VS2022,扩展–>管理扩展–>联机–>搜索Qt–>安装Qt Visual Studio Tools。若提示环境变量设置失败,要让我们自行设置环境变量:PATH = .\CGAL-5.6\auxiliary\gmp。如果一切顺利,运行后可以看到如下结果。

2023-12-26 21:05:40 188

原创 异常处理与CrashRpt工具——(3)

CrashRpt是一个开源的第三方包,在程序出现未处理异常时,能够收集错误信息,并生成程序错误报告。CrashRpt可以将报告按照指定的方式(例如HTTP或SMTP)发送给开发者或者保存在本地,并且可以对生成的错误报告进行分析,定位错误位置,找出错误原因。

2023-12-20 08:09:49 82

原创 异常处理与CrashRpt工具——(2)

一种思想:在所有支持异常处理的编程语言中(例如java),要认识到的一个思想:在异常处理过程中,由问题检测代码可以抛出一个对象给问题处理代码,通过这个对象的类型和内容,实际上完成了两个部分的通信,通信的内容是“出现了什么错误”。例外:catch子句使用指针或者引用接收参数,并且在catch子句内你不访问异常类的成员,那么你的catch子句的异常说明符才可以是前置声明的类型。因为C++中可以抛出任何类型的异常,所以我们的异常类可以不继承标准异常类,但是这样可能会导致程序混乱,尤其是当我们多人协同开发时。

2023-12-16 19:46:43 96

原创 异常处理与CrashRpt工具——(1)

除此之外,我们可以为每一个异常设置若干处理函数,而这些处理函数会被放到一个链表中,当异常到达时,这些处理函数会被调用。语句不是这个异常错误所对应的正确异常处理模块,不能处理该异常,通知操作系统继续搜寻该线程其他的异常处理程序(系统将继续到上一层的。复合语句中的受保护执行的代码发生了异常,或受保护执行的代码调用的函数内部发生了异常并要求调用者来处理该异常,这样的语句是catch不到的,直接就会crash了,因为这是内存错误,硬件异常。中的代码,是在正常执行完之后进来的,还是因为全局展开或局部展开而进入的。

2023-12-13 19:31:50 78

原创 什么是特征图?

特征图是卷积神经网络的核心组成部分,因为它们从输入图像中捕获基本特征,以帮助网络决策。此外,它们允许CNN通过丢弃不需要的数据和保留重要信息来更快地处理大型数据集。

2023-12-10 09:42:23 957

原创 PCL 点云边界提取

目前PCL中应该只集成了AC,因为这个方法确实比HdC好,已经够用了。这两种方法的思路都非常简单,但是却非常有效,而往往流传下来的经典方法都是这种简单有效的方法。目前,在点云的边界特征检测(网格模型的边界特征检测已经是一个确定性问题了,见网格模型边界检测)方面,PCL中有一个针对点云边界的可以称作为是。这些问题在点云边界提取的研究和应用中是需要重点关注和解决的。通过改进算法和数据预处理方法,可以提高点云边界提取的准确性和效率。如图所示,第一行为非边界点邻域经过投影后,近邻点与当前点。的方法,这个方法出自。

2023-12-09 15:55:28 1020

原创 3D点云处理软件CloudCompare

开源项目推荐:3D点云处理软件CloudCompare,基于Qt和OpenGL。

2023-12-06 21:28:03 203

windows下检测内存泄漏的脚本,先安装windbg x64

windows下检测内存泄漏的脚本,先安装windbg x64

2023-09-20

MiniTool分区软件

MiniTool分区向导是一款基于Windows操作系统的磁盘分区管理软件。该软件能够在不重启计算机的前提下进行:磁盘拷贝、分区复制、分区合并、分区大小调整、分区移动、变化分区簇大小、分区格式化、分区转换、分区隐藏、动态/基本磁盘互转**等无损操作。

2023-07-19

工业镜头的选择方案

工业镜头选择

2017-07-13

工业相机选型方案

相机选型

2017-07-11

串口通信软件

串口通信软件:虚拟串口软件、串口调试助手、Mscomm控件。

2015-12-10

VS2008下配置Halcon 10

VS2008下配置Halcon 10,库文件,包含文件.

2015-12-09

OCR字符识别

包含基恩士资料,光盘、数码管、喷码以及校正后的OCR

2015-10-08

寻找一维码、二维码

Halcon寻找采集图像中的一维码以及二维码,配有详细的步骤说明。

2015-10-07

划痕、油污、瑕疵检测

划痕、油污、瑕疵检测的经典案例,结合算子的说明,更好的了解其原理。

2015-10-06

Halcon例程总结

通过例子学习Halcon这个视觉库 可以更好的上手 此外这些例子中的方法能给与我们更好的研究思路

2015-08-21

OpenCV打开大恒AVT摄像机

可实现用Opencv回调的方式打开工业摄像机

2015-05-27

hacker成长之道

有关hacker 的文章和资料分享给大家

2015-03-01

空空如也

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

TA关注的人

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