halcon
文章平均质量分 66
爱炸薯条的小朋友
机械专业的图像算法学生
展开
-
halcon瓶身表面缺陷检测-滤波差值法
滤波差值法的核心在于如何对滤波器的选择和测试参数。其中,在有大量噪点的缺陷检测项目和有大量边缘的项目中不适合使用。例如皮质表面脏污检测等。滤波差值法受到边缘和噪点的影响非常大,可以在实际使用中多加尝试即可。原创 2024-04-17 09:59:39 · 583 阅读 · 0 评论 -
halcon-轴断面检测定位
断面检测的核心在于对区域的内接矩形和差值的运用。通过内接矩形剔除细轴的区域,在不断通过差值进行计算即可。原创 2024-04-14 14:03:13 · 593 阅读 · 0 评论 -
Halcon颜色抽取-多产品颜色(MLP)
有不清楚的地方,可以移步前言的链接查看。mlp常用的场景一般都是单颜色区分,相当多时候是在预处理中进行。但是作为项目上,常见于各种颜色有色差的分类。比如产品有色差的情况,也是可以用颜色抽取实现。原创 2024-04-11 23:50:20 · 650 阅读 · 0 评论 -
halcon,快速hobject转bitmap格式(20ms以下)
在实际项目中经常会将halcon的图像格式转化为bitmap的格式。例如在载入tensorflow的训练模型时,一般不支持对hobject格式的输入,包括很多程序。所以就需要一个具有较快速度的转化方式。本文中的转化方式,在24位彩色图中平均在15ms(4096*2160),32位彩色图18ms,8位灰度图,10ms。原创 2024-04-10 18:15:41 · 806 阅读 · 0 评论 -
halcon缺陷检测-印刷品检测(差异化模型),键盘字符缺陷检测
上面其中重点提到了对ROI的选取。核心的关键在于如何去矫正图像,矫正区域。这个图像,由于已经预先固定在一个指定的区域,所以在检测时可以通过ROI去框选检测。而且每个检测区域有着较大的距离,所以在框选ROI时误差相对会比较的少。对于上图而言20个检测区域,实际总共检测耗时在70ms左右。检测速度可以达到相当快,并且检测精度高。原创 2024-04-09 19:22:43 · 2344 阅读 · 1 评论 -
Halcon3D表面平面度和缺陷检测-平面矫正法
我的上一篇博客针对了对常见的平面度检测的方法——平面差值法做了简单的讲解。但是我也提到平面差值法有诸多的缺点,如无法定位异常位置,无法忽略噪点的影响等。所以现在使用平面矫正法可以有效的避免上述情况在文章开头,我写上了一篇使用平面差值法的平面度检测,他们互相的差距在于,平面差值法更简单,适用于条件良好的产品,或者无法进行平面矫正的产品。但是通常情况来说,使用平面矫正法是最为常见的表面度检测和平面缺陷检测。原创 2024-03-30 10:48:04 · 1595 阅读 · 1 评论 -
Halcon3D表面平面度检测-平面差值法
通常我们对表面平面度进行检测时,通常使用2种方式。1:通过大卷积核的高斯滤波进行拟合平面,然后求取拟合平面与3D模型间的点间的距离。2:通过平面矫正,将被测试平面矫正到水平面后,对平面以上和平面以下的点云进行筛选。(关于平面矫正,可以点击文章开头链接查看)。本文主要讨论通过大卷积核的高斯滤波进行平面拟合,求取拟合平面与3D模型的距离。此方法,适用于对3D相机采集效果良好,并且无需标记,只输出NG情况的方案。原创 2024-03-29 16:43:37 · 1596 阅读 · 0 评论 -
Halcon3D倾斜平面矫正至水平面
当平面进行矫正后,即可对新的3d模型进行处理和检测。由于矫正平面受到倾斜平面上的噪点影响,可以预先进行高斯滤波,可以有效的提高矫正精度。*获取灰阶平面,计算灰阶平面位姿*创建平行于灰阶平面的面如上2行所述,获取到矫正参数后,可以对任意区域进行矫正。原创 2024-03-29 16:02:08 · 2014 阅读 · 4 评论 -
halcon模板匹配和旋转矫正
先预先定义一个固定的带角度的矩形ROI,角度为我们所需要修正的角度的方向,然后进行生成和创建模板,然后匹配模板,并将匹配成功的横纵坐标与角度进行图像旋转即可原创 2024-03-14 11:18:57 · 969 阅读 · 0 评论 -
Halcon测量专栏-平行度
针对线线平行度的评价标准,所以预先定义直线1作为基准线,直线2作为被测线。对直线2上的2个端点对基准线计算距离,并求2个距离的差值,差值的数额即为平行度的误差原创 2024-03-12 11:24:48 · 514 阅读 · 0 评论 -
Halcon测量专栏-圆倒角
针对圆角的特性,由2条直线构成的圆弧,所以圆弧上位于2相交直线的中间。所以先获得2条直线的坐标,获取到2条直线的交点,然后再绘制2条线段的内接圆,然后以交点为起始点,内切圆圆心为终点,做一条线段,在做线段的垂线,相切于圆角,以垂线做为起始点,内切圆圆心作为终点,做N条采样直线,将获取到的采样点拟合成圆即可。原创 2024-03-12 09:39:54 · 368 阅读 · 0 评论 -
Halcon测量专栏-圆弧测量
圆上任意两点间的部分叫做圆弧。由于圆弧有正反的特性,即为有顺时针方向和逆时针方向,在确定圆弧时,也需要确定圆弧的方向。针对圆弧的问题。1:它与圆是相似的,都具备中心坐标和半径,还有起始和终点角度;2:定义一个圆弧方向,以顺时针为测量方向。原创 2024-03-11 17:27:49 · 892 阅读 · 0 评论 -
Halcon测量专栏-直线度
直线度公差指单一实际直线允许的变动全量。用于控制平面或空间直线的形状误差,其公差带根据不同的情况有几种不同的形式。针对直线度的评价方式进行直线测量。1:先对初始直线进行直线测量,精准的判断出当前直线的起始和终点坐标。2:根据直线的角度和长度,以10个像素单位间隔进行测量矩形逐个测量,用于判断直线的误差。halcon所采取的实现方式,是如上所述。绘制理想直线,然后判断边缘在直线上的波动值原创 2024-03-11 11:46:17 · 1016 阅读 · 0 评论 -
Halcon测量专栏-圆度
圆度是指工件的横截面接近理论圆的程度,最大半径与最小半径之差为0时,圆度为0,测量工具为圆度仪,用途是测环形工件的圆度。圆度是限制实际圆对理想圆变动量的一项指标,其公差带是以公差值t为半径差的两同心圆之间的区域。圆度公差属于形状公差,圆度误差值不大于相应的公差值,则认为合格1.2圆度评价方式最小外接圆法:只适用于外圆。以包容被测圆轮廓且半径为最小的外接圆圆心为圆心,所作包容被测圆轮廓的两同心圆半径差即为圆度误差。最大内接圆法:只适用于内圆。以内接于被测圆轮廓且半径为最大的内接圆圆心为圆心,所作包原创 2024-03-11 11:02:52 · 1436 阅读 · 0 评论 -
Halcon棋盘格畸变矫正
通常我们使用的相机都是带有一定的畸变的,只是畸变的大小不同。对于我们常见的测量项目来说,对测量精度的要求很高,通常从相机镜头上进行优化,但是即使镜头优化或者成本原因,造成图像仍有一定的畸变时,我们就可是使用棋盘格标定板,进行畸变矫正。原创 2024-03-09 16:59:23 · 1402 阅读 · 0 评论 -
Halcon深度学习,异常值缺陷检测
异常值检测不同于语义分割的项目,异常值检测可以仅训练OK图像,不训练NG图像,但是使用NG图像训练可以显著提高准确度异常值检测通常运用在缺陷检测的项目里面,他的特点是,可以不训练NG图,训练速度快,多特殊缺陷可以快速识别。其次,可以针对图像中的缺陷类型不固定,缺陷区域不固定,物体大小不一等语义分割无法准确识别的缺陷。原创 2024-03-09 16:29:50 · 1820 阅读 · 7 评论 -
Halcon自动对焦技术验证
由于相当多的产品是具备封装好的软件和机械机构,不能在人为的控制相机的调焦。与此同时,使用的客户有可能为工厂的普工和技术工程师,所以在对客户的培训上有较大的难度,使用一个可以判断当前图像清晰程度的程序可以帮助完成相机的自动对焦。原创 2024-03-09 14:11:54 · 643 阅读 · 0 评论 -
Halcon颜色提取,基于MLP自动颜色提取功能
算子中的2代表具有2种需要被区分的颜色。如果我们训练里面需要被区分的颜色有多种,那么我们需要修改指定的参数。并且效果显著,主要针对具有物体颜色需要被区分,或者由于打光效果或者来料不稳定造成的图像异常的情况,并且可以通过颜色快速提取特征的方式。第一:先对图像明显的区域进行需要区分的颜色进行选取,还有对背景选取。对于背景的选取,应尽可能的包含常见的元素,有助于大量提升背景的识别效率。需要注意的时查看对应的区域数组。这样子我们就可以避免出现对同颜色的部分,因为打光不均匀造成颜色识别异常的情况。原创 2023-12-26 14:14:38 · 1521 阅读 · 0 评论 -
Halcon深度学习,语义分割,预处理和部署过程
halcon在深度学习中提供了7种学习方式和例子。其中最为常见的为语义分割,一般使用与在需要标注显示的缺陷检测项目中。几乎所有的2D缺陷检测都可以使用语义分割作为项目部署。先上完整程序。原创 2023-12-06 16:04:08 · 2669 阅读 · 1 评论 -
上位机模块之圆形测量,基于halcon的二次开发
在编写通用上位机或普通上位机时,我们经常会遇到对多个产品或者有新增产品的情况,但是直接修改代码又会非常麻烦,所以直接使用通用的上位机模块与序列化可以快速解决不同产品的问题。在halcon的算子中针对常见的几何图像进行测量。其中add_metrology_object_generic可以对圆,椭圆,矩形,直线进行测量。主要内容可以直接查看文档。在halcon的文档中,对通用参数与位置的描述比较的模糊。通用参数与位置并不是一一对应的情况,而是相对的,在程序和上文列举了部分最常用到的参数。halcon文档解析。原创 2023-11-15 17:23:07 · 384 阅读 · 2 评论 -
上位机模块之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 · 1639 阅读 · 0 评论 -
使用Halcon的HsmartWindows窗体控件显示3D模型
通常我们需要在上位机查看我们采集到的3D图像,但是我们采集的3D图像通常都是深度图或者数据形式,我们在转换成halcon的3D模型后在上位机上直接查看。所以需要单独显示一个类控件。第二:在程序中,由于显示3D模型是一个无限循环的过程,所以需要使用多线程显示,不然会出现程序卡死的情况。第一:在程序代码中,我们第一步需要将显示窗口绑定在我们的控件中,不然窗体上是什么都没有显示的。由于halcon的导出代码量非常大,所以以文件的形式上传。原创 2023-11-15 14:49:07 · 589 阅读 · 0 评论 -
手眼标定,9点标定过程及其运算
在工业领域常常会遇到将相机安装在机器手中,由相机快速引导机器手进行工作的方式。其中9点标定的作用是将图像的坐标转化为机器手的坐标。9点标定的作用意义:1.计算像素当量,通过9点标定后的计算,可以得出一个由像素值转化为机器手的移动值的一个变化量。当我们标定完后即可得到一个像素当量的固定值。2.将图像坐标系转化为机器手的同向坐标系。为什么叫做同向坐标系?我们标定的时候,需要将图像坐标与对应的机器手的坐标进行一一对应。原创 2023-01-15 16:52:25 · 14322 阅读 · 5 评论 -
halcon快速模板匹配
快速的找到我们需要的模板,然后对区域进行膨胀,可以直接快速的采集到模板的轮廓,然后对模板进行创建轮廓即可。当我们进行匹配时出现匹配到的图像与我们预先设定的图像有差别时,这时候我们可以对单张图进行多模板匹配原创 2022-12-19 09:42:25 · 1222 阅读 · 0 评论 -
halcon圆查找
圆查找功能本质上圆查找功能是由于大部分时候会出现的模板匹配的精度不佳,对实际的坐标有部分偏差的情况这时候我们可以通过建立测量矩形的形式,对预估点进行多次测量以得到较为精确的轮廓算子除了有圆查找,还有椭圆查找,直线查找,带角度的矩形查找四种方法原创 2022-12-19 09:36:55 · 3875 阅读 · 0 评论 -
基于视觉halcon的对pcb元件缺失快速检测参考处理
对于常规的pcb的元件缺失检测大致步骤。第一:售前,需要快速判断元件是贴片,引脚式,常规裸露式,并使用ROI直接进行快速的blob分析,使用特征面积选择即可快速的完成早期评估工作。第二:根据需求判断,是否需要模板匹配单对多还是多对多的处理。第三:实际代码书写,对于模板匹配的输出文件,应以写入新的文件。本次需求:对c6旁边的电阻进行检测是否存在电阻或者电阻脱落的情况原创 2022-05-07 20:06:12 · 1736 阅读 · 3 评论 -
Halcon实战项目讲解,定位,基于汽车离合片精密定位尝试。
总结:在离合片这个项目中,重点在于如何提取凸出部的位置(即为齿所在的位置)。在使用模板匹配的时候对于精密定位是有很大的偏差,精准度低的现象。所以我们在良好的打光的情况下可以直接使用blob分析,将多种手法运用在其中。其中差值算子最常用于对毛刺的缺陷检测,取交集最常用于OCR的识别。Blob分析在基本所有的视觉问题都非常常见。本程序为本人自己练习书写,非交付实际使用源码,仅供学习参考。原创 2022-03-14 20:28:35 · 6792 阅读 · 0 评论 -
缺陷检测,halcon案例入门篇。
缺陷检测,halcon案例入门篇。常见缺陷:1.凸凹结构(包含小毛刺)。2.内部污点,表面不平整,瑕疵,孔洞,破损,烫伤,油啧。3.划痕。处理方法:打光处理划痕。低角度环形光,把背景打白,划痕打暗 。凸点,使用低角度环形光,把背景打暗,凸点打白。凹点,使用垂直光(可环形),把背景打亮,背景打暗。【可使用条光对打】曲面字体(凸出部),使用瓦装曲型光板,侧面以一定角度打入,可把字体打亮。2. 算法处理Blob分析+特征检测Blob分析+特征+差分频率+空间光度立体法特征训原创 2022-02-27 15:45:23 · 8184 阅读 · 0 评论 -
机器视觉模板匹配,halcon示例讲解,入门篇
总结:入门篇总共列举了,基于相关性的模板匹配和基于形状的模板匹配,其中基于形状的模板匹配中一对多和多对多的情况。直接学习halcon的例程内容方便我们直接学习。基于形状(最常用的。受光照有一定影响)使用ROI区域绘制模板。使用blob分析创建模板。使用CAD导入轮廓创建模板基于相关性(不受光照的影响,但是受图像大小等多种因素影响)原创 2022-02-09 23:16:27 · 6178 阅读 · 3 评论 -
模板匹配中级篇,Halcon实战项目讲解一,基于相关性。
总结:对于模板匹配的相关性匹配而言,他的匹配是基于图像的大小像素的灰度值。意思就是如果我的模板是20*20cm的,匹配样板是30*30的即使我们看的是一样的仍然不能匹配。对于一张图片而言如果所得的图片有所遮挡到我们预先模板的区域也是不能正常识别的。模板匹配比较常用于各类的定位项目,和其他项目的预处理。对于模板匹配而言我们不一定要使用ROI区域可以直接使用blob分析,但是原则都是将我们需要建立模板的图像进行抠图。原创 2022-02-08 22:12:16 · 3066 阅读 · 0 评论 -
机器视觉测量拟合中级篇,halcon实战,measure测量助手
机器视觉测量拟合中级篇,halcon实战测量助手个人学习笔记第一:快速使用measure测量助手进行识别:measure测量助手打开位置进入measure测量助手的首页,第一使用对图像进行读取。第二:图像源选取1.按照要求选取图像源,可以直接对图像窗口进行选取(在实现写好读图程序)。2.图像文件,我们可以直接选取图像文件,在插入代码即可直接使用。3.图像采集助手,这个是需要先使用采集助手进行连接相机,然后使用相机进行实时读取。/****/期望的灰度值范围:一般采取默认值0-255。如果原创 2022-02-07 15:54:25 · 3564 阅读 · 0 评论 -
OCR识别中级篇,Halcon实战项目讲解四,环形字符OCR识别
Halcon程序及其讲解。read_image (Image, ‘D:/shijue/学习笔记/OCR识别/OCR环形字符识别.png’)rgb1_to_gray (Image, GrayImage)threshold (GrayImage, Regions, 0, 222)shape_trans (Regions, RegionTrans, ‘outer_circle’)*外接圆complement (Regions, RegionComplement)*补集connection (Re原创 2022-02-06 22:04:34 · 2448 阅读 · 1 评论 -
OCR识别中级篇,Halcon实战项目讲解三,数显屏OCR识别
OCR识别中级篇,Halcon实战项目讲解三,数显屏OCR识别Halcon程序及其讲解。read_image (Image, ‘D:/shijue/学习笔记/OCR识别/OCR识别2.png’)mirror_image (Image, ImageMirror, ‘row’)mirror_image (ImageMirror, ImageMirror1, ‘column’)*旋转摆正*镜像翻转scale_image (ImageMirror1, SelectedChannel, 4.47368原创 2022-02-06 15:04:19 · 1970 阅读 · 1 评论 -
OCR识别中级篇,halcon实战项目讲解二,OCR助手
OCR识别中级篇,Halcon实战项目讲解二,OCR助手。第一:快速使用OCR助手进行识别:OCR助手打开位置进入halcon的OCR助手中,首页第一个设置是可以进行快速OCR识别和对需要识别的区域字体进行OCR识别训练。第一:按照他的要求进行加载图像,直接点击1.后面那个图像即可加载图片第二:按照他的要求进行对文本图像的选取,当我们的图像为正的时候,或者水平状态的时候可以直接使用第一个画方正的矩形,如果我们的图像为倾斜状态,我们则直接选取第二个可倾斜矩形选框,也可以默认直接选择课旋转的矩形原创 2022-02-04 21:14:36 · 6604 阅读 · 1 评论 -
OCR识别中级篇,Halcon实战项目讲解一,点状字符。
总结实战:第一:读图。第二:无论任何情况都需要修正字符角度,除非已经保证字符是平行与图像的。固定的套路程序,可以直接调用万能。第三:对字符提取,对于点状字符而言我们可以直接使用第四:使得图像为一个连通域,防止i,1等字符无法识别成功第五:进行区域拆分第六:进行读取halcon分类器输出原创 2022-01-25 21:35:19 · 4685 阅读 · 3 评论 -
浅谈Halcon分类器在实际机器视觉项目中的应用
最近在学halcon的时候看到有个奇怪的代码程序。halcon代码* dev_get_window (WindowHandle)* create_class_mlp (3, 7, 2, 'softmax', 'normalization', 3, 42, MLPHandle)* dev_set_color ('red')* Image Acquisition 03: Code generated by Image Acquisition 03* list_files ('D:/shijue/fa原创 2021-12-15 19:08:31 · 3464 阅读 · 1 评论 -
浅谈c/c++中的for循环用法和讲解。
近些天来,我在教一些人c++的的用法的时候,发现很多问题。其中我推荐的学习方法是用c++ primer plus这本书,然后学习他的标准语法和c11标准,这其中我发现可能是因为新手的原因,他们很难对代码的用法进行理解。还有其中我发现书中也有一些不足的内容,对函数的讲解总感觉有点一知半解的样子。我的编程学习是从《明解c语言》开始的,那本书对新手的学习相对很多编程书都更加的友好,感觉很奇怪我看了不少书都觉得日本人写的教材很适合新手学习,而美国人写的教材更适合有基础的人学习,当然中国人写的书,只要是上过大学的原创 2021-12-11 13:30:11 · 1680 阅读 · 0 评论 -
浅谈在qt项目内使用多线程实时显示halcon相机,并实现实时计数。
看过我之前的博客的人应该知道我最近在处理利用halcon绑定窗口的时候遇到放大多倍的情况,最近突然想到错误在哪里了,顺便我同时也写一个关于使用多线程读相机的程序,当然在实际项目中,读相机基本都要用多线程来读取,并根据按钮的进行图像处理。还是按照惯例直接上演示,当然最近光源出现一些问题,所以有黑边,但是我还在找调节器说明书(其实是没找到)。直接上代码:mythreadd这个是子线程程序。mythreadd.h#ifndef MYTHREAD_H#define MYTHREAD_H#includ原创 2021-12-02 19:24:14 · 2118 阅读 · 3 评论 -
浅谈,基于vs,qt项目实现基于halcon的对图像的处理
按照往常先上运行结果直接贴代码reg.h#ifndef REG_H#define REG_H#include <halconcpp/HalconCpp.h>#include "halconcpp.h"#include <qgridlayout.h>#include <QHBoxLayout>#include <qpushbutton.h>#include <QtWidgets/QWidget>#include <qla原创 2021-11-27 21:49:11 · 1798 阅读 · 0 评论 -
浅谈,常见halcon算子及其相对应的用法讲解和使用(持续更新)
@常见halcon算子及其相对应的用法讲解和使用(持续更新)第一:颜色拆分通道。第二条:形态学命令。第三条:填充空白命令。第四条:多区域颜色拆分命令。第五条:特征直方图第六条:区域选取填补。第七条:求取角度。以下的c++代码均为halcon的源码第一:颜色拆分通道。/******************************************************************************/decompose3 (Image, Red, Green, B原创 2021-11-27 21:33:36 · 6499 阅读 · 1 评论