自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 问答 (2)
  • 收藏
  • 关注

原创 halcon瓶身表面缺陷检测-滤波差值法

滤波差值法的核心在于如何对滤波器的选择和测试参数。其中,在有大量噪点的缺陷检测项目和有大量边缘的项目中不适合使用。例如皮质表面脏污检测等。滤波差值法受到边缘和噪点的影响非常大,可以在实际使用中多加尝试即可。

2024-04-17 09:59:39 309

原创 halcon-轴断面检测定位

断面检测的核心在于对区域的内接矩形和差值的运用。通过内接矩形剔除细轴的区域,在不断通过差值进行计算即可。

2024-04-14 14:03:13 467

原创 Halcon颜色抽取-多产品颜色(MLP)

有不清楚的地方,可以移步前言的链接查看。mlp常用的场景一般都是单颜色区分,相当多时候是在预处理中进行。但是作为项目上,常见于各种颜色有色差的分类。比如产品有色差的情况,也是可以用颜色抽取实现。

2024-04-11 23:50:20 403

原创 halcon,快速hobject转bitmap格式(20ms以下)

在实际项目中经常会将halcon的图像格式转化为bitmap的格式。例如在载入tensorflow的训练模型时,一般不支持对hobject格式的输入,包括很多程序。所以就需要一个具有较快速度的转化方式。本文中的转化方式,在24位彩色图中平均在15ms(4096*2160),32位彩色图18ms,8位灰度图,10ms。

2024-04-10 18:15:41 283

原创 halcon缺陷检测-印刷品检测(差异化模型),键盘字符缺陷检测

上面其中重点提到了对ROI的选取。核心的关键在于如何去矫正图像,矫正区域。这个图像,由于已经预先固定在一个指定的区域,所以在检测时可以通过ROI去框选检测。而且每个检测区域有着较大的距离,所以在框选ROI时误差相对会比较的少。对于上图而言20个检测区域,实际总共检测耗时在70ms左右。检测速度可以达到相当快,并且检测精度高。

2024-04-09 19:22:43 1351

原创 Halcon3D表面平面度和缺陷检测-平面矫正法

我的上一篇博客针对了对常见的平面度检测的方法——平面差值法做了简单的讲解。但是我也提到平面差值法有诸多的缺点,如无法定位异常位置,无法忽略噪点的影响等。所以现在使用平面矫正法可以有效的避免上述情况在文章开头,我写上了一篇使用平面差值法的平面度检测,他们互相的差距在于,平面差值法更简单,适用于条件良好的产品,或者无法进行平面矫正的产品。但是通常情况来说,使用平面矫正法是最为常见的表面度检测和平面缺陷检测。

2024-03-30 10:48:04 697 1

原创 Halcon3D表面平面度检测-平面差值法

通常我们对表面平面度进行检测时,通常使用2种方式。1:通过大卷积核的高斯滤波进行拟合平面,然后求取拟合平面与3D模型间的点间的距离。2:通过平面矫正,将被测试平面矫正到水平面后,对平面以上和平面以下的点云进行筛选。(关于平面矫正,可以点击文章开头链接查看)。本文主要讨论通过大卷积核的高斯滤波进行平面拟合,求取拟合平面与3D模型的距离。此方法,适用于对3D相机采集效果良好,并且无需标记,只输出NG情况的方案。

2024-03-29 16:43:37 852

原创 Halcon3D倾斜平面矫正至水平面

当平面进行矫正后,即可对新的3d模型进行处理和检测。由于矫正平面受到倾斜平面上的噪点影响,可以预先进行高斯滤波,可以有效的提高矫正精度。*获取灰阶平面,计算灰阶平面位姿*创建平行于灰阶平面的面如上2行所述,获取到矫正参数后,可以对任意区域进行矫正。

2024-03-29 16:02:08 1233

原创 halcon模板匹配和旋转矫正

先预先定义一个固定的带角度的矩形ROI,角度为我们所需要修正的角度的方向,然后进行生成和创建模板,然后匹配模板,并将匹配成功的横纵坐标与角度进行图像旋转即可

2024-03-14 11:18:57 457

原创 Halcon测量专栏-平行度

针对线线平行度的评价标准,所以预先定义直线1作为基准线,直线2作为被测线。对直线2上的2个端点对基准线计算距离,并求2个距离的差值,差值的数额即为平行度的误差

2024-03-12 11:24:48 287

原创 Halcon测量专栏-圆倒角

针对圆角的特性,由2条直线构成的圆弧,所以圆弧上位于2相交直线的中间。所以先获得2条直线的坐标,获取到2条直线的交点,然后再绘制2条线段的内接圆,然后以交点为起始点,内切圆圆心为终点,做一条线段,在做线段的垂线,相切于圆角,以垂线做为起始点,内切圆圆心作为终点,做N条采样直线,将获取到的采样点拟合成圆即可。

2024-03-12 09:39:54 202

原创 Halcon测量专栏-圆弧测量

圆上任意两点间的部分叫做圆弧。由于圆弧有正反的特性,即为有顺时针方向和逆时针方向,在确定圆弧时,也需要确定圆弧的方向。针对圆弧的问题。1:它与圆是相似的,都具备中心坐标和半径,还有起始和终点角度;2:定义一个圆弧方向,以顺时针为测量方向。

2024-03-11 17:27:49 487

原创 Halcon测量专栏-直线度

直线度公差指单一实际直线允许的变动全量。用于控制平面或空间直线的形状误差,其公差带根据不同的情况有几种不同的形式。针对直线度的评价方式进行直线测量。1:先对初始直线进行直线测量,精准的判断出当前直线的起始和终点坐标。2:根据直线的角度和长度,以10个像素单位间隔进行测量矩形逐个测量,用于判断直线的误差。halcon所采取的实现方式,是如上所述。绘制理想直线,然后判断边缘在直线上的波动值

2024-03-11 11:46:17 496

原创 Halcon测量专栏-圆度

圆度是指工件的横截面接近理论圆的程度,最大半径与最小半径之差为0时,圆度为0,测量工具为圆度仪,用途是测环形工件的圆度。圆度是限制实际圆对理想圆变动量的一项指标,其公差带是以公差值t为半径差的两同心圆之间的区域。圆度公差属于形状公差,圆度误差值不大于相应的公差值,则认为合格1.2圆度评价方式最小外接圆法:只适用于外圆。以包容被测圆轮廓且半径为最小的外接圆圆心为圆心,所作包容被测圆轮廓的两同心圆半径差即为圆度误差。最大内接圆法:只适用于内圆。以内接于被测圆轮廓且半径为最大的内接圆圆心为圆心,所作包

2024-03-11 11:02:52 540

原创 Halcon棋盘格畸变矫正

通常我们使用的相机都是带有一定的畸变的,只是畸变的大小不同。对于我们常见的测量项目来说,对测量精度的要求很高,通常从相机镜头上进行优化,但是即使镜头优化或者成本原因,造成图像仍有一定的畸变时,我们就可是使用棋盘格标定板,进行畸变矫正。

2024-03-09 16:59:23 736

原创 Halcon深度学习,异常值缺陷检测

异常值检测不同于语义分割的项目,异常值检测可以仅训练OK图像,不训练NG图像,但是使用NG图像训练可以显著提高准确度异常值检测通常运用在缺陷检测的项目里面,他的特点是,可以不训练NG图,训练速度快,多特殊缺陷可以快速识别。其次,可以针对图像中的缺陷类型不固定,缺陷区域不固定,物体大小不一等语义分割无法准确识别的缺陷。

2024-03-09 16:29:50 747

原创 大恒相机SDK开发

大恒相机sdk适用于大恒相机网口与USB使用,并将采集数据转化为Halcon对象。

2024-03-09 14:31:21 616

原创 Halcon自动对焦技术验证

由于相当多的产品是具备封装好的软件和机械机构,不能在人为的控制相机的调焦。与此同时,使用的客户有可能为工厂的普工和技术工程师,所以在对客户的培训上有较大的难度,使用一个可以判断当前图像清晰程度的程序可以帮助完成相机的自动对焦。

2024-03-09 14:11:54 279

原创 Halcon3D篇-3D预处理,滤波,点云筛选

由于3D相机采集到的数据通常通过Tiff格式的深度图进行显示或者保存。

2024-01-09 22:14:01 1248

原创 Halcon3D篇-深度图与halcon模型互转

关于3D相机采图部分,可以参考我们LMISDK的二次开发程序:https://blog.csdn.net/m0_51559565/article/details/134404394彩色融合图效果。由于Win自带的图片查看并不能正常渲染Tiff图像。所有推荐一个免费tiff查看器:irfanview

2024-01-03 14:22:22 1428

原创 Halcon颜色提取,基于MLP自动颜色提取功能

算子中的2代表具有2种需要被区分的颜色。如果我们训练里面需要被区分的颜色有多种,那么我们需要修改指定的参数。并且效果显著,主要针对具有物体颜色需要被区分,或者由于打光效果或者来料不稳定造成的图像异常的情况,并且可以通过颜色快速提取特征的方式。第一:先对图像明显的区域进行需要区分的颜色进行选取,还有对背景选取。对于背景的选取,应尽可能的包含常见的元素,有助于大量提升背景的识别效率。需要注意的时查看对应的区域数组。这样子我们就可以避免出现对同颜色的部分,因为打光不均匀造成颜色识别异常的情况。

2023-12-26 14:14:38 960

原创 Halcon深度学习,语义分割,预处理和部署过程

halcon在深度学习中提供了7种学习方式和例子。其中最为常见的为语义分割,一般使用与在需要标注显示的缺陷检测项目中。几乎所有的2D缺陷检测都可以使用语义分割作为项目部署。先上完整程序。

2023-12-06 16:04:08 1680 1

原创 上位机模块之圆形测量,基于halcon的二次开发

在编写通用上位机或普通上位机时,我们经常会遇到对多个产品或者有新增产品的情况,但是直接修改代码又会非常麻烦,所以直接使用通用的上位机模块与序列化可以快速解决不同产品的问题。在halcon的算子中针对常见的几何图像进行测量。其中add_metrology_object_generic可以对圆,椭圆,矩形,直线进行测量。主要内容可以直接查看文档。在halcon的文档中,对通用参数与位置的描述比较的模糊。通用参数与位置并不是一一对应的情况,而是相对的,在程序和上文列举了部分最常用到的参数。halcon文档解析。

2023-11-15 17:23:07 299 2

原创 上位机模块之序列化与反序列化,二进制序列化

在计算机中,任何数据的本质都是二进制编码的数据,所以我们在使用二进制序列化时可以将任意的数据进行序列化。在halcon中自带的算子提供了许多序列化方式,当然都是针对某些特殊的形式,比如模板匹配的模板文件.shm或者仿射变换矩阵等。由于他们本质上都是二进制的数据,所以在使用.net的序列化时,我们可以将我们的模块文件(Halconhandle)进行序列化保存。在常规的上位机编写中需要用到许多存储数据,存储对象的时候,我们存储数据的过程就是序列化,我们提取数据的过程就是反序列化。

2023-11-15 16:46:44 214

原创 上位机模块之halcon绘制ROI与获取ROI,在hsmartwindow实现

1.Halcon自带的.netROI是通过调用HDrawingObject中的算子实现的,获取ROI同样也是,如何去得到延申的其他ROI。在Halcon的帮助文档中,搜索SetDrawingObjectParams并在.net格式中我们可以找到halcon所支持的全部ROI区域的参数,我们根据区域参数去获取即可。在上位机中通常需要使用到绘制ROI模块或者获取已经绘制好的ROI区域的参数,在这里通过使用hsmartwindow窗体控件进行对ROI的绘制和获取。

2023-11-15 16:03:08 1215

原创 使用Halcon的HsmartWindows窗体控件显示3D模型

通常我们需要在上位机查看我们采集到的3D图像,但是我们采集的3D图像通常都是深度图或者数据形式,我们在转换成halcon的3D模型后在上位机上直接查看。所以需要单独显示一个类控件。第二:在程序中,由于显示3D模型是一个无限循环的过程,所以需要使用多线程显示,不然会出现程序卡死的情况。第一:在程序代码中,我们第一步需要将显示窗口绑定在我们的控件中,不然窗体上是什么都没有显示的。由于halcon的导出代码量非常大,所以以文件的形式上传。

2023-11-15 14:49:07 379

原创 LMI相机配置步骤,使用Gocator2550相机

启动加速器后,IP地址选择电脑主机IP地址,本机端口号,输入除8080外,随后启动加速器。若加速器启动失败,是由于加速器的版本与相机固件包版本不同导致,联系供应商提供对应加速器版本即可。使用浏览器启动IP地址:192.168.1.10随后点击进入即可(未开加速器则直接进入)进入后显示是当前电脑IP地址+加速器端口号。LMI加速器用于将相机cpu与电脑相连,通过共享电脑cpu算力,实现对行频的提高。1.设置移动速度,将频率=Y方向的像素量/(测量距离/移动速度)

2023-11-15 14:29:33 1074

原创 相机通用类之LMI激光三角相机(3D),软触发硬触发(飞拍),并输出halcon格式对象

LMI相机的运行逻辑并不难,一个主要是如何配置LMI相机,另一个是如何转换格式图像。代码中提供了3种转换方式,分别有:GenTL格式,带标定数据的halcon类型,不带标定数据的halcon类型。最近完成一个关于LMI激光三角(3D相机)采图的demo,记录并说明用法。如何配置LMI相机后面会再开一份博客进行讲解。

2023-11-14 17:53:32 1480 8

原创 相机通用类之海康相机,软触发硬触发(飞拍),并输出halcon格式对象

如何显示图像:可以访问我文章开头的博客,通过编写相机通用类即可,程序中是有继承通用类,通过访问相机通用的获取图像数据,从而传输图像数据。具体可以查看相机通用类。整体过程其实比较简单,由于海康相机没有像一些品牌相机一样可以直接使用序列号开启相机,所以我们需要通过对相机信息进行索引,根据索引到的相机序列号来开启相机。

2023-11-14 17:36:29 2575 8

原创 上位机模块之通用重写相机类

通用的相机类包含我们需要继承和重写的内容,其中方式有很多种,暂定列举现在常用的通用功能。分为:查找相机,根据相机序列号开启相机,关闭相机,软触发一次,硬触发(飞拍),重连相机,设置参数。在常用的视觉上位机中,我们通常会使用单个上位机匹配多个相机或者多品牌相机,所以在此记录一个可重写的通用相机类,用于后续长期维护开发。如果有新增通用功能在另外编写修改。

2023-11-14 17:25:55 762 1

原创 上位机模块之TCP数据解析类

上位机通常会与PLC进行数据通讯在通讯时一般使用16进制与ACS2码进行发送,所以工具类中提供4个方法进行解析数据。1.将字符串集合转换为字节数组,集合为数字(十进制)3.将字符串指定区域的转换为ACS2,其他区域为数字。2.将字符串集合转换为字节数组,集合全为字母。使用方法,全部复制粘贴,创建对象即可使用。4.将字节数组的指定区域转换为字符串。对TCP首发数据提供4个方法。

2023-03-29 11:54:08 368 1

原创 C#上位机之NG选点

使用方式,将NG选点窗口复制到项目中,并链接好完成NG选点按钮控件,和picbox控件。通过使用提前将NG原图保存下来,并将路径传入方法中,在从NG选点窗口中创建的CSV进行获取到数据即可。获取数据经过处理,可以直接输出图像上的坐标而不是控件坐标。在定位项目中,经常会在生产的时候出现模板匹配找不到或者匹配错误的情况,在匹配不正确的时候需要快速人工确认方向,所以就需要一个人工选点的功能——NG选点。

2023-03-28 16:24:00 197 1

原创 C#上位机模块之独立窗口进度条

在上位机开启时,由于需要加载大量的控件,类和相关的文件。所以在加载时需要创建一个独立窗口的进度条用于在加载主窗口前预留一定的时间,并使得上位机更加美观。对进度条窗口进行设置,将图标与边框去除。对进度条设置:属性为public共有。第一步:新建一个窗体类。

2023-03-27 16:43:21 328

原创 C#上位机模块之窗体控件随着窗体大小等大变换

在实际的上位机中会经常出现例如拖动框体,或者窗体全屏的情况,但是在绘制窗体的时候往往不能达到全屏状态进行书写。并且在工控机中由于成本控制原因,往往选取价格偏移的设备,或者触摸屏的形式,所以在分辨率不同时也需要对控件等比例放大缩小。所以在程序中设定箱体自动变换大小时,控件跟随变换即可。在窗体中设计大小变换函数即可。

2023-03-27 16:37:44 966

原创 C#上位机模块之CSV存储类

在上位机中,经常会出现将数据存储到本地中,所以我写了一个常用的工具类用于直接调用,快速完成对CSV的存储。方法4在文件多的时候会出现运行时间慢的情况。方法1:对项目debug路径下创建以时间为名字的CSV文件,并写入题头与数据。其中输入数据为:路径(string),题头(List),数据(List)方法1和2:在同一时间传入200个数据时耗时为0.99ms。方法2:对绝对路径创建CSV文件,并写入题头与数据。其中方法1与方法2是重载函数,使用时需要注意。方法4:CSV保存时间,删除超出时间的路径。

2023-03-27 16:31:03 1284 2

原创 手眼标定,9点标定过程及其运算

在工业领域常常会遇到将相机安装在机器手中,由相机快速引导机器手进行工作的方式。其中9点标定的作用是将图像的坐标转化为机器手的坐标。9点标定的作用意义:1.计算像素当量,通过9点标定后的计算,可以得出一个由像素值转化为机器手的移动值的一个变化量。当我们标定完后即可得到一个像素当量的固定值。2.将图像坐标系转化为机器手的同向坐标系。为什么叫做同向坐标系?我们标定的时候,需要将图像坐标与对应的机器手的坐标进行一一对应。

2023-01-15 16:52:25 12295 5

原创 halcon快速模板匹配

快速的找到我们需要的模板,然后对区域进行膨胀,可以直接快速的采集到模板的轮廓,然后对模板进行创建轮廓即可。当我们进行匹配时出现匹配到的图像与我们预先设定的图像有差别时,这时候我们可以对单张图进行多模板匹配

2022-12-19 09:42:25 1140

原创 halcon圆查找

圆查找功能本质上圆查找功能是由于大部分时候会出现的模板匹配的精度不佳,对实际的坐标有部分偏差的情况这时候我们可以通过建立测量矩形的形式,对预估点进行多次测量以得到较为精确的轮廓算子除了有圆查找,还有椭圆查找,直线查找,带角度的矩形查找四种方法

2022-12-19 09:36:55 3287

原创 机器人与视觉,基于BaseX坐标系的运动偏移

baseX坐标系为机器手的工作坐标系,在示教是直接确定,baseX点在base0坐标系下的点。不仅示教点会发生变化,示教的坐标系baseX也会发生变化,而且由于是绕着baseX进行旋转,所以点相对baseX的坐标不会改变,但是相对base0的坐标会改变,所以我们需要基于base0下的坐标系进行计算,并且直接输出基于base0下的示教坐标。第二步:确定示教点坐标。由于实现多个坐标系的联动情况,那么通常都会伴随着坐标系的移动和旋转,所以我们会设立2个机器人坐标系,一个是机器手的工作坐标系,即为baseX;

2022-12-12 15:48:30 2559 2

原创 机器人与视觉,基于TCP(工具坐标)偏移

基于工具坐标系的移动偏转。基于TCP旋转的特点在于,具有1个固定端点,多个活动端的特点。我们在建立TCP左边偏移的时候,可以将2个点近似的模拟在同一个坐标系下

2022-12-10 16:23:10 1928

Halcon3D表面平面度检测-平面差值法

Halcon3D表面平面度检测-平面差值法

2024-03-29

Halcon3D倾斜平面矫正至水平面,的halcon程序,测试图像,平面夹角计算程序

Halcon3D倾斜平面矫正至水平面,的halcon程序,测试图像,平面夹角计算程序

2024-03-29

Halcon棋盘格畸变矫正,内包含标定图像和测试图像,和halcon程序

Halcon棋盘格畸变矫正,内包含标定图像和测试图像,和halcon程序

2024-03-09

Halcon深度学习,异常值缺陷检测

里面包含异常值检测halcon程序和测试图像

2024-03-09

大恒相机SDK开发,可执行并将数据格式转化成halcon对象

大恒相机SDK开发,可执行并将数据格式转化成halcon对象

2024-03-09

Halcon自动对焦技术验证

包含halcon程序和4组对焦测试图像

2024-03-09

Halcon3D篇-深度图与halcon模型互转

里面包含文章对应图像与halcon的程序

2024-01-03

Halcon颜色提取,基于MLP自动颜色提取功能

Halcon颜色提取,基于MLP自动颜色提取功能

2023-12-26

Halcon深度学习,语义分割,模型部署显示部分

上面包含halcon语义分割,对模型部署的应用

2023-12-06

Halcon深度学习,语义分割,数据预处理部分

上面包含halcon预处理全过程

2023-12-06

上位机模块之圆形测量,基于halcon的二次开发

上位机模块之圆形测量,基于halcon的二次开发

2023-11-15

使用Halcon的HsmartWindows窗体控件显示3D模型

可以在VS中直接运行,使用.net4.8版本,VS2022

2023-11-15

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

TA关注的人

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