Halcon
文章平均质量分 70
以实战为线索,逐步推进Halcon的学习与应用
MechMaster
软件工程师/机器视觉工程师
展开
-
dots_image 增强图像中的圆点特征
dots_image 增强图像中的圆点特征。原创 2024-06-07 21:19:37 · 402 阅读 · 0 评论 -
Halcon——热熔胶质量检测
点胶质量检测1. 项目背景2. 具体需求3. 代码案例3.1 halcon代码3.2 自定义函数3.3 完整代码和图片下载1. 项目背景UV点胶机电热熔胶工位,点胶之后还需要对胶水进行检测,这属于缺陷检测的范畴了。下面这张图像是使用UV线光源从上面打光得到的图像效果,从图像中可以看到,热熔胶由于添加了荧光剂,被UV光源打亮,而电池的其他部分比较暗。下面这张图像是利用背光源从底下打光,而上面UV光源此时处于关闭状态。这和上一张图像是同一块电池,只不过使用的光源不同。这张图像可以帮助我们定位电池的位原创 2022-01-22 15:16:05 · 4895 阅读 · 0 评论 -
Halcon——使用标定板标定像素当量
使用标定板标定像素当量1. 了解标定板的参数2. 确定标定的方法3. Halcon代码示例原创 2022-01-13 08:46:38 · 5338 阅读 · 3 评论 -
3D视觉——线激光测量胶水高度
线激光测量胶水高度1. 项目背景介绍2. 基恩士线激光的设置3. 使用Halcon处理深度图3.1 线激光高度数据转为深度图5. Halcon图像处理方法6. Halcon代码1. 项目背景介绍最近参与了一个锂电池UV点胶机的项目,其中对胶水高度(胶水最高点到基准面的距离)的测量,选用的是基恩士LJ-V7001线激光。如下图,灰色矩形代表电芯,蓝色条状物就是UV胶,线激光的测量线与UV胶边缘垂直,沿着箭头方向移动,直到扫描完整条边缘。下图是点完UV胶后电池的截面图,线激光就是要测量T1和T2的值原创 2022-01-07 15:07:48 · 3920 阅读 · 2 评论 -
Halcon——点胶机胶水路径应用(2)
点胶机胶水路径应用1. 寻找一种更简单的方法2. 处理效果3. Halcon代码4.资源下载接续上一篇Halcon——点胶机胶水路径应用(1):https://blog.csdn.net/weixin_38566632/article/details/1211813851. 寻找一种更简单的方法在上一篇博客中使用的方法代码比较多,角点平移依靠三角函数关系,情况复杂,一不小心就搞错了。所以我寻求一种更简洁,稳定性更好的方法。接下来我将使用获取区域轮廓、轮廓分割和筛选等方法得到电池主体的边缘,然后做原创 2021-11-17 14:14:44 · 2180 阅读 · 0 评论 -
Halcon——点胶机胶水路径应用(1)
胶水路径应用1. 项目要求2. 算法分析3. 效果展示4. halcon代码5. 资源下载1. 项目要求如下图,点胶机想在红色箭头路径上点胶,电池使用背光源定位。要求:操作简单(尝试不使用模板),可以设置胶水路径的偏移量。2. 算法分析第一种方法想到的是使用模板匹配找到电池位置,然后检测直线的区域使用仿射变换跟随模板移动,找到四条边,求出四个交点。胶水路径也是直线,可以使用边缘直线偏移得到。第二种方法第一种不同的是,不再使用模板匹配进行粗定位,而是使用Blob分析直接确定抓取直线的大致区原创 2021-11-06 17:05:12 · 2518 阅读 · 3 评论 -
halcon——在图形窗口中画坐标系
在图形窗口中画坐标系1. 看一个案例2. 具体要求3. 解决方案和效果4. 抓边工具方法Blob差分方法6. 两种方法的不同7. 资源下载1. 看一个案例下图是电池UV点胶和热熔胶。想测量胶水的宽度,然后将宽度以曲线的形式显示在窗口中。2. 具体要求只需关注W1、W2的技术要求3. 解决方案和效果首先使用blob分析将UV胶区域分割出来,然后抠图;然后使用抓边工具/或Blob差分方法,测量胶水的宽度;最后在窗口中画出坐标系,显示宽度变化曲线4. 抓边工具方法dev_u原创 2021-11-05 16:06:25 · 2263 阅读 · 1 评论 -
Haclon 一些关于显示的基本算子(1)
一些常用的关于显示的算子打开窗口打开一个适合图像尺寸的窗口清空当前窗口关闭当前窗口获得窗口句柄设置窗口更新状态设置区域线宽设置区域填充模式设置输出颜色数量设置颜色设置字体显示信息显示图像/区域/XLD保存窗口图像获得窗口图像只介绍常用的算子:打开窗口dev_open_window( : : Row, Column, Width, Height, Background : WindowHandle)打开一个适合图像尺寸的窗口dev_open_window_fit_image(Image : : R原创 2021-06-03 17:27:33 · 1225 阅读 · 0 评论 -
Halcon学习路线——模板匹配和仿射变换
模板匹配1. 模板匹配分类2. 看一个案例3. 资源下载1. 模板匹配分类halcon对模板匹配进行了详细的分类基于灰度的模板匹配是最基础也是最简单的,但是由于其受光照影响很大,匹配的精度也不高,在实际项目当中往往不被采用。更高版本的halcon中基于灰度和基于相关性的模板匹配案例也被删减了,可能他们也觉得这种方法并不好用吧。更常用的是基于形状的模板匹配,在halcon中案例也最多,在此基础上又产生了局部可变性等方法,这些在后面再详细阐述,这里就不展开说了。2. 看一个案例https:/原创 2021-10-29 11:29:29 · 2134 阅读 · 0 评论 -
Halcon学习路线——Blob分析(2)
Blobf分析1. 看一个实际案例2. 解决方案和代码3. 资源下载1. 看一个实际案例这是一块电池,右侧有两个极耳,极耳相对电池的位置固定。力神的检测部门会对电池进行抽检,他们使用的工具是一个电木模具,类似于下面的图形,它可以有效的限制住电池的上限。(NG一般是电池尺寸超出标准,所以对电池尺寸的下限不需要限制)如果电池能放入模具中,则认为合格,如果放不进去就是不合格,那么该如何来设计算法来判断电池是否合格呢电池的极耳会漏在外面2. 解决方案和代码halcon代码read_imag原创 2021-10-29 10:23:36 · 669 阅读 · 0 评论 -
Halcon学习路线——Blob分析(1)
Blob分析1. 谈谈Blob分析2. 看一张图片3. 处理图像效果4. Halcon代码5. 资源下载1. 谈谈Blob分析Blob可以说是图像处理中最简单、最常用的方法了。虽说简单,但是往往也能达到目的,稳定性也不错。这种方法适用的场景也非常多,实际项目中几乎都会看到它的身影。有时是作为辅助手段获取目标区域图像,有时直接作为最终的处理结果输出。当然Blob也有其自身的局限性,比如受光照的影响比较大,它要求前景和背景有较为明显的明暗差别(灰度值上的差别),这样更容易做图像分割。拿到图片后,我一般原创 2021-10-28 14:37:53 · 1515 阅读 · 0 评论 -
3D视觉——基恩士LJ-X系列线激光
基恩士LJ-X系列线激光1. 基恩士硬件和软件的调试1.1 下载并安装软件 LJ-X Navigator 和 LJ-X Observer1.2 将控制器与电脑连接,接上24V电源就可以使用了。1.3 通信连接1.4 实时设定1.5 批处理之后用Observer打开1.6 软件中有图像补正,测量等功能,比较简单。2. Halcon处理高度图2.1 寻找圆周焊中漏焊的区域2.2 Halcon代码3. 资源下载地址1. 基恩士硬件和软件的调试1.1 下载并安装软件 LJ-X Navigator 和 LJ-X原创 2021-09-24 16:02:08 · 11050 阅读 · 6 评论 -
halcon 仿射变换和区域跟随
放射变换和区域跟随1. 应用场景2. 应用示例1. 应用场景当感兴趣区域不容易被捕捉,但是又必须要定位它的未知的时候,可以先选择定位其他的特征区域。我们先找到特征区域,因为这个特征区域和感兴趣区域相对位置确定,我们就可以根据仿射变换矩阵找到感兴趣区域了。Mark点就是这样应用的。2. 应用示例dev_set_line_width (3)dev_set_draw ('margin')read_image (Image, '1.png')gen_rectangle1 (ROI_0, 1原创 2021-07-22 09:54:14 · 3071 阅读 · 8 评论 -
Halcon 元组tuple的基本操作
1. 两个重要的算子2. 一些基本操作3. 运算3.1 算数运算3.2 位运算3.3 保留有效数字3.4 比较操作3.5 布尔操作3.6 三角函数3.7 指数函数3.8 数字函数3.9 其他函数原创 2021-07-21 17:25:46 · 8010 阅读 · 1 评论 -
Halcon 测量直线和圆环的线宽
测量直线和圆环的线度1. 场景说明2. 简单分析3. 算法效果4. halcon代码下载1. 场景说明如下图,有5个焊印,现在我想测量焊印的宽度,检查有没有断焊,漏焊,焊印宽度很窄的情况。2. 简单分析焊印1是圆形的,所以我计划使用极坐标转换,将其展成直线,然后再测量线宽;焊印2—5都是直线型的,所以直接上抓直线工具rake,测量矩形搞起;rake工具可以看这篇博客:https://blog.csdn.net/weixin_38566632/article/details/117744728原创 2021-07-14 09:54:34 · 2156 阅读 · 0 评论 -
Halcon 抓圆工具spoke
抓圆工具spoke1. 代码2. 代码下载摘自鸟叔教程。这里是抓直线工具:https://editor.csdn.net/md/?articleId=1177447281. 代码抓直线工具写的比较详细,这里就不多啰嗦了,直接上代码。效果:Halcon代码:read_image (Image, '4.bmp')dev_display (Image)dev_set_color ('red')dev_get_window (WindowHandle)Elements:=10Det原创 2021-07-13 17:54:44 · 2842 阅读 · 3 评论 -
Halcon 多个点拟合圆
利用Halcon将多个点拟合成圆halcon代码Row := [0,100.5,100,3]Col := [4,0,100,99.4]gen_contour_polygon_xld (Contour, Row, Col)fit_circle_contour_xld (Contour, 'geotukey', -1, 0, 0, 3, 2, Row_C, Column_C, Radius_C, StartPhi_C, EndPhi_C, PointOrder_C) dev_set_col原创 2021-07-08 19:13:12 · 6433 阅读 · 0 评论 -
C#联合Halcon 自定义控件鼠标双击响应事件
自定义控件鼠标双击响应事件1. halcon的自定义控件2. HMouseDown事件1. halcon的自定义控件这两天做项目发现一个问题,halcon自带的控件hWindowControl的双击响应事件无效:下面的这些事件都无效只有 H 开头的有效,但是这里面有没有鼠标双击的事件我是想实现这样的功能,鼠标双击控件,让控件放大和缩小,最关键的一步就是鼠标双击事件的响应。所以我想到了下面这个办法:2. HMouseDown事件使用 HMouseDown事件 来代替鼠标双击事件,实现思原创 2021-07-01 19:10:09 · 1794 阅读 · 1 评论 -
Halcon 3D点云和深度图的相互转化
3D点云和深度图相互转化1. 如何将灰度图转为3D点云2. 创建一张深度图3. 深度图转点云、点云转深度图4. 代码和图片下载地址原创 2021-06-21 19:46:49 · 13653 阅读 · 4 评论 -
Halcon 找圆测量工具
找圆测量工具1. find_circle函数2. 示范案例1. find_circle函数find_circle(Image, Contours, WindowHandle, CenterRow, CenterCol, Radius)参数描述Image输入图像Contours输出轮廓WindowHandle输入窗口句柄CenterRow输出圆心行坐标CenterCol输出圆心列坐标Radius输出圆半径如果没有找到圆则返回0,0,0原创 2021-06-16 17:20:31 · 2854 阅读 · 0 评论 -
Halcon自定义直线卡尺rake
拟合直线 rake工具1. 为什么要开发rake工具2. rake工具的封装三个函数 2.1 创建ROI的函数:draw_rake 2.2 边缘测量的函数:rake 2.3 拟合直线的函数:pts_to_best_line3. rake工具使用示例4. 代码下载原创 2021-06-09 16:11:50 · 6720 阅读 · 12 评论 -
Halcon算法矫正镜头畸变
矫正畸变1. 什么是畸变2. 算法矫正镜头畸变的步骤3. Halcon代码原创 2021-06-05 16:47:32 · 3575 阅读 · 3 评论 -
Halcon缺陷检测——机器学习1
缺陷检测——机器学习1. ocr识别1.1 ocr识别就只能识别ocr吗?1.2 简单的图形分类halcon提供了三套机器学习的算子,它们都可以用来检测缺陷1. ocr识别1.1 ocr识别就只能识别ocr吗?首先halcon在ocr识别中提供了一套算子,支持我们自己去训练模型,然后再拿训练好的模型来识别字符,我在前面的文章中写过,感兴趣的小伙伴可以去查看:https://editor.csdn.net/md/?articleId=115208338那么问题来了,识别ocr的算子真的就只能识别原创 2021-05-12 23:26:50 · 2300 阅读 · 3 评论 -
Halcon缺陷检测——光度立体
光度立体法1. 了解一些概念2. 认识两个算子3. 初试光度立体法4. 药片外包装破损的检测(halcon案例)原创 2021-05-03 23:06:59 · 5454 阅读 · 3 评论 -
halcon缺陷检测——频域
缺陷检测——频域和空间域1. 理解傅里叶变换2. 读懂频谱图3. 使用频域处理图像的案例3.1 脏污检测3.2 检测表面微小凸起3.3 检测磨砂表面的缺陷4. 资源下载1. 理解傅里叶变换为了理解频域处理的相关概念,我向大家推荐知乎上面的一篇文章:傅里叶分析之掐死教程(完整版)https://zhuanlan.zhihu.com/p/197633582. 读懂频谱图我们先仔细地观察下面的几幅图片,左边的是图像在空间域中,右边是图像在频域中:从上面这几幅图中我们可以观察到以下几个原创 2021-05-03 09:04:49 · 3023 阅读 · 1 评论 -
Halcon缺陷检测——测量拟合
缺陷检测——测量拟合1. 简单聊一聊测量的那些事2. 做几个测量判断缺陷的项目案例1. 测量液体线高度1. 简单聊一聊测量的那些事测量为什么也能做缺陷检测的工作呢?仔细想一想,这不是废话吗?缺陷其中就包含了被测物的尺寸等问题,长短粗细、高矮胖瘦、间隙宽窄,包括我以前做过的平面度、平行度、轮廓度等测量项目,起始都可以归结为缺陷检测类项目。就拿测量平面度项目来说吧,使用点激光按照图纸上标出的测量点位测量所有点的高度,结合轴坐标(或者直接使用工件坐标),我们就得到了一组三维点,轴坐标(或工件坐标)是X,Y原创 2021-04-29 21:13:02 · 1999 阅读 · 1 评论 -
Halcon缺陷检测——差分
缺陷检测——差分+定位1. 简单的差分案例1:检测毛刺案例2:电路板线路缺陷检测案例3:瓶口破损缺陷检测2. 模板匹配定位+差分案例1:印刷质量缺陷检测(standard)案例2:检测工件孔洞毛刺缺陷 - 局部变形(direct)3. 拓展一下1. 卡尺+差分2. 喷涂获得图像原创 2021-04-28 23:47:20 · 8352 阅读 · 1 评论 -
Halcon缺陷检测——Blob分析特征
blob分析+定位+特征案例1:检测破碎的小饼干案例2:检测胶囊药粒案例3:检查塑料网是否破损资源下载地址原创 2021-04-27 21:12:49 · 1982 阅读 · 0 评论 -
Halcon 缺陷检测概述
缺陷检测概述1. 什么缺陷检测2. 缺陷检测的方法总结原创 2021-04-27 19:50:17 · 949 阅读 · 0 评论 -
Halcon 卡尺
内外卡尺1. 参考案例2. 使用卡尺进行测量的基本流程2.1 创建卡尺模型2.2 设置图像宽高2.3 添加卡尺2.4 设置卡尺模板参数2.5 定位(变换)2.6 测量2.7 获得结果:3. 案例1:测量钻石的角度4. 案例2:圆形卡尺和矩形卡尺5. 下载链接1. 参考案例下面是halcon给出的有关卡尺的案例:案例:applly_metrology_model_diamond.hdev案例:apply_metrology_model.hdev2. 使用卡尺进行测量的基本流程2.1 创建卡尺模原创 2021-04-26 22:03:10 · 6439 阅读 · 7 评论 -
Halcon 一维测量
halcon一维测量,测量矩形和测量弧形,以及三个一维测量案例代码原创 2021-04-26 00:19:31 · 1488 阅读 · 0 评论 -
Halcon 4点单标相机外参
1. 单标外参使用背景如果摄像机系统没有变化,只是测量面发生了移动或旋转,此时重标相机外参可以解决问题,这种方法可以解决斜测的问题。2. 主要函数:vector_to_pose( : : WorldX, WorldY, WorldZ, ImageRow, ImageColumn,CameraParam, Method, QualityType : Pose, Quality)//功能:利用世界坐标和像素坐标之间的关系计算出摄像机在世界坐标系中的姿态//WorldX, WorldY, Worl原创 2021-04-25 17:09:42 · 1432 阅读 · 2 评论 -
Halcon 摄像机标定流程-代码实现
1. 标定参数的构成• 标定参数分为相机的内参和外参;• 内参:内参标定的是摄像系统的内部结构和关系,镜头的畸变在出厂的时候就已经固定下来的,唯一可能改变的是镜头和相机之间的组装关系。所以如果相机和镜头没有拆卸过,就不需要重新标定相机的内参了;• 外参:外参是指摄像系统的坐标系与世界坐标系之间的关系,如果测量表面上下移动了,或测量表面旋转了,这时需要重新标定相机的外参,也就是重新确定摄像机在世界坐标系中的姿态。而标定外参只需要一张图像即可。世界到相机的变换矩阵如下,object to camera原创 2021-04-25 11:28:57 · 831 阅读 · 1 评论 -
Halcon 使用标定好的内外参测量圆心距
1. 首先读入相机的内参和外参read_cam_par (‘D:/MyCameraIn.cal’, CameraParam)read_pose (‘D:/MyCameraOut.dat’, Pose)2. 在计算距离之前使用像素转世界的函数,有这样几个函数:contour_to_world_plane_xld 像素轮廓转世界轮廓image_points_to_world_plane 像素点转世界点3. 测量实例代码和图片下载地址:链接:https://pan.baidu.com/s/1d原创 2021-04-25 09:34:36 · 1005 阅读 · 2 评论 -
Halcon 圆形标定板标定基本流程-标定助手操作
Halcon 圆形标定板基本流程1. 认识标定板:2. 生成标定板的描述文件3. 开始标定4. 采集标定板的图像1. 认识标定板:这个标定板的规格是 7×7;标定板原点直径是 1.875mm;左上角有一个三角区,是用来标识标定板方向的;一般标定板的厚度也会给出,在坐标系偏移中会用到;2. 生成标定板的描述文件在开始标定之前,需要先提前生成标定板的描述文件。halcon提供了一个算子:gen_caltab (7, 7, 0.00375, 0.5, ‘D:/Mycaltab.descr’原创 2021-04-22 22:10:01 · 4512 阅读 · 2 评论 -
Halcon OCR识别
Halcon分类器MLP (多层感知)SVM (支持向量机)KNNGMM原创 2021-04-14 17:12:25 · 3406 阅读 · 0 评论 -
Halcon 二维码
1. 二维码1.1 定义黑白相间的方块构成的图案。二维码又叫数据码,也叫图形码。1.2 结构如果三个角有三个黑色定位框,则一定是QR码。‘AZTec Code’什么特征都没有的是’Data Matrix ECC 200’Pdf417码Micro QR码1.3 原理二进制。2. Halcon识别二维码基本流程流程create_data_code_2d_modelset_data_code_2d_modelfind_data_code_2dcl原创 2021-04-10 10:22:17 · 2432 阅读 · 0 评论 -
Halcon 一维码(条形码)
目录1. 一维码原理1.1 定义:1.2 作用:1.3 解码:1.4 原理:1.5 构成:2. Halcon识别一维码2.1 流程:2.2 获得中间结果的算子3. 难读取的一维码3.1 产生原因:3.2 方法1:预处理3.3 方法2:设置参数4. Halcon一维码识别源代码下载地址:1. 一维码原理1.1 定义:人们用一些黑白相间的条纹构成的图案叫一维码,也叫条码。1.2 作用:它可以很方便的将一些信息,通过算法存储到图案中(编码)。1.3 解码:识别一维码,把信息通过算法解析出来。原创 2021-04-08 17:24:15 · 3216 阅读 · 3 评论 -
Halcon 仿射变换
目录1. 仿射变换类型2. 仿射变换相关函数2.1 求仿射变换矩阵的函数:2.2 仿射变换函数3. 插值算法类型4. 平移旋转缩放实例5. 车牌仿射变换实例1. 仿射变换类型平移旋转缩放镜像错切前三种比较常见,后面两种不常用。2. 仿射变换相关函数2.1 求仿射变换矩阵的函数:Vetcor_angle_to_rigid //刚体hom_mat2d_translate//平移hom_mat2d_rotate//旋转hom_mat2d_scale//缩放2.2 仿射变换函数原创 2021-04-07 19:47:18 · 930 阅读 · 0 评论 -
Halcon Blob分析(二值化图像分割)
鸟叔《Halcon工业应用实用教程》学习笔记Blob分析Blob分析的目的在于对图像中的2D形状进行检测和分析,得到诸如目标位置、形状、方向。Blob分析流程如下:#mermaid-svg-Hr6AsAtVucmMlihW .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-Hr6AsAtVucmMlihW .原创 2021-03-25 11:30:42 · 1880 阅读 · 0 评论