- 博客(190)
- 收藏
- 关注
原创 halcon案例find_box_3d.hdev
本文介绍了基于HALCON的通用箱体3D定位系统。该系统通过XYZ图像生成3D场景,根据预设尺寸范围查找纸箱,并输出机器人可抓取的位姿信息。主要流程包括:1)读取XYZ图像并分解为X/Y/Z分量;2)转换为3D点云模型;3)设置箱体尺寸参数和边缘处理参数;4)使用find_box_3d算子定位箱体;5)生成包含坐标系和圆盘的工具模型用于可视化验证。系统支持调试中间结果,并能自动计算最优抓取位姿,适用于工业自动化场景中的箱体抓取任务。
2025-11-21 19:50:34
210
原创 halcon案例find_surface_model_noisy_data.hdev
该示例展示了在噪声严重的TOF/PMD相机3D数据中进行基于表面的3D匹配方法。首先从参考XYZ图像创建3D表面模型:通过中值滤波平滑Z通道,阈值分割提取目标区域,生成3D对象模型。然后在多个噪声场景中匹配该模型:先预处理场景数据(去除无效点、置信度筛选),提取有效区域后转换为3D对象,最后通过设置'scene_normal_computation'参数优化匹配鲁棒性。结果显示,该方法能在高噪声环境下准确定位目标模型,并支持批量处理多个场景。
2025-11-21 19:22:54
360
原创 halcon案例fit_primitives_object_model_3d.hdev
摘要:该HALCON程序实现了一个3D圆柱体的分割与拟合流程。首先读取XYZ三通道2.5D图像,通过高度阈值(0-0.83)对Z通道进行粗分割提取圆柱区域,然后转换为3D点云模型。采用最小二乘鲁棒拟合算法(least_squares_huber)精确拟合圆柱体参数,最终可视化显示拟合结果。整个过程包含了图像预处理、区域分割、3D模型转换和几何基元拟合等关键技术步骤,展示了从2.5D图像到3D几何建模的完整流程。
2025-11-11 00:08:14
561
原创 例程 simplify_object_model_3d
这个Halcon例程演示了如何使用simplify_object_model_3d操作对三维模型进行简化处理。程序首先读取一个三角化的"斯坦福兔子"模型,在左侧窗口显示原始模型及其顶点数。随后在右侧窗口依次展示将该模型简化保留10%、1%和0.1%顶点后的结果,每次简化都显示当前顶点数和保留比例。通过对比不同简化程度下的模型效果,直观展示了三维模型简化算法的处理能力。程序还设置了交互式3D可视化功能,允许用户通过鼠标旋转、缩放和平移来查看模型细节。
2025-10-20 10:22:32
609
原创 边缘检测算子
图像处理基础算法主要包括灰度变换、滤波、边缘检测等。灰度变换通过调整像素值改善图像质量;滤波算法(如均值滤波、高斯滤波)用于降噪;边缘检测(如Sobel、Canny算子)可提取图像特征。此外,形态学处理(腐蚀、膨胀)和几何变换(旋转、缩放)也是常用技术。这些算法为后续高级处理(如目标识别)奠定基础。
2025-07-17 13:45:44
141
原创 Canny边缘检测
这是一篇关于Canny边缘检测算子的简要记录。作者表示曾深入研究过该算法,认为它是一个优秀的边缘检测算子,但目前已记忆模糊。文中附上了5张相关图片(包括原理示意图和效果对比图),这些图片可能展示了Canny算子的处理流程或与其他边缘检测方法的比较结果。作者通过整理这些资料来重新梳理相关知识,并作为备忘记录。全文透露出对Canny边缘检测算法的认可态度。
2025-07-17 13:33:09
200
原创 VM使用时问题总结
本文整理了VM视觉系统的使用技巧与常见问题解决方案,主要内容包括:图像处理的注意事项(空模块处理、黑图报错解决、渲染图设置等);变量与数组计算规则;数据通信与参数设置方法;字符触发与图像处理参数(Gamma、粗糙/精细尺度等)的配置建议;几何测量中的角度处理规范;机器学习参数调整技巧;图像处理算法(阴影校正、拷贝填充等)的应用说明;以及常见模块异常(字符比较、直线查找等)的快速解决方法。文中还提供了具体场景下的配置示例和脚本编写指导,强调通过重新初始化模块解决参数异常问题。
2025-07-17 10:04:33
842
原创 halcon案例clip_region_rel
该HALCON示例展示了区域裁剪的两种方法:clip_region和clip_region_rel。clip_region通过绝对坐标矩形与原区域求交集实现裁剪;clip_region_rel则对每个连通域的外接矩形进行相对偏移(上下左右内缩)后再求交集。代码还演示了如何筛选较大区域后进行裁剪,以及通过手动计算偏移坐标实现相同效果。关键点在于理解TOP/BOTTOM/LEFT/RIGHT参数的含义,以及处理小区域时的规避方法。最终效果显示绿色裁剪区域相对于原始红色区域实现了预期的内缩效果。
2025-07-04 18:51:17
366
原创 #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif
这段代码在 MFC 的调试版本中起着重要的作用,主要是为了在内存分配时能够记录更多的调试信息,以便在后续的调试过程中能够有效地发现和定位内存泄漏等问题,从而提高程序的稳定性和可靠性。
2025-06-29 18:25:56
184
原创 生活总是在平淡中开出花
出差的周末,这酒店只要不关电视,他就可以一直演,所以这么多天,每天睁眼闭眼电视都开着。一直定格在CCTV6。今天一直是综合格斗的剧情。早起,就是拳击手的电影。《激战》,彭于晏和张家辉《出拳吧,妈妈》,白杨和小辉?《八角笼中》《我们永不言弃》出场的每个人,都是身披,头包裹着。满身肌肉。眼神中充满力量。逆转的每个人,都充满了坚韧。前面的回合充满了隐忍,往往在最后一个回合,一圈制胜。知道了一个名词,KO,KILL OVER?金腰带。综合格斗。当父母真不容易。以及,资本真的很强大(戏里戏外)
2025-06-29 18:13:53
325
原创 如何能够让生成一个固定阈值参数-记录备用
本文提出了一种自动生成阈值分割参数的动态方法。通过采集300张样本图像并设置状态标志位,系统在测试阶段自动计算并保存每张图的分割阈值。测试完成后,计算阈值均值作为最终参考值,适用于不同产品的参数自适应调整。实验显示该方法能有效获取分割参数(如标签纸),但存在光照不均导致阈值波动的问题,建议按区域分组优化。程序通过TESTGenThre标志位切换参数获取与应用模式,实现了从固定参数到动态生成的升级,提升了算法对不同产品的适应性。
2025-06-22 12:07:22
159
原创 意外看到的宏定义#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
有时还需要不同的逻辑,那时候很扯,直接就是两台机写两个程序,17年的时候,那时候还不知道怎么切换,直到前人走了,看了人家的代码,才知道用条件宏,才晓得在不同条件可以用虚基类来创建不同的派生类,再结合条件宏来编译。顺道搞明白几个宏的含义。~x 是按位取反运算(bitwise NOT),它将 x 的每一位取反(0变1,1变0)。仅当 x 的对应位为0且 z 的对应位为1时,结果的该位才为1。如果 x 的某一位为1,则结果的该位取决于 y 的对应位。如果 x 的某一位为0,则结果的该位取决于 z 的对应位。
2025-06-06 19:54:40
556
原创 halcon案例gray_moments.hdev
dev_set_lut设置活动图形窗口的查找表(Look-Up-Table,简称LUT)。查找表定义了从单通道图像中的“灰度值”到屏幕上的灰度值或颜色的转换。然而,与该操作符不同的是,新的查找表也用于之后打开的所有新图形窗口。操作符 moments_gray_plane 计算灰度值矩和灰度值平面近似的参数。Alpha 表示沿行轴方向(“向下”)的梯度,Beta 表示沿列轴方向(“向右”)的梯度。以下是例程说明==================================
2025-06-04 14:48:46
287
原创 close_edges.hdev
close_edges函数用于补全边缘检测中的间隙,生成更完整的物体轮廓。它通过分析边缘点邻域中振幅(梯度)最大的点,若该点振幅超过设定的最小阈值MinAmplitude,则将其加入边缘区域。输入需包含边缘检测结果(如sobel_amp输出的单像素边缘)和梯度幅值图像,输出为闭合的边缘区域。示例代码展示了使用sobel_amp检测边缘后,对比直接阈值处理(红色)和经close_edges闭合处理(绿色)的效果差异,可见后者显著改善了边缘连续性。该操作适用于梯度变化平缓区域的边缘修复,但可能导致边缘波动。
2025-06-04 12:24:28
204
原创 记录一次失败的线扫相机阴影矫正
我没有按照人家说的拿一个白纸啥的,一来,我现场找不到A4纸;2来,我想把线扫的背景直接拿掉。所以就按照真实的环境来的。设置到所需的行数:行数8192,用的最大视野;以及高度设置了2048;点击获取暗场图像,获取完成,点击执行暗场矫正。接着,点击:获取明场图像;这里把亮度设为了0,不想有干扰。让光晕在整幅图里呈现的相对均匀。也可能是这样,所以矫正失败。把图设置为6000高度;完了运行起来,采集一幅图。获取完成就点击,明场矫正。再用原图接着明场矫正。
2025-04-26 17:33:52
362
原创 来日方且长
像极了,少平在全班同学吃过饭后,作为打菜的他,却一个人践踏着泥泞,去到他山后的安乐窝。想起富贵,活着里最大的主人公,唯一且年迈,因为年少无知,一个一个的送走了所有人,最后却留下了那一只和他同样年迈的老黄牛。有的人的优雅,真是天生的。头戴头盔的某人,手里拿着两瓶小酒,白酒,李太白可以随口一句,金樽清酒斗十千,玉盘珍馐,觥筹交错之间留下洋洋洒洒的诗书。年少时读石壕吏,纯属背课文,最近看到,尤其成家之后,对家人,对ZF,社会阅历更加丰富之后,没有刚毕业时候的血气方刚,有事硬怼,取而代之的是,视若罔闻。
2025-04-23 23:10:14
683
原创 记录下测试最近遇到的问题
这次的问题是,选择的连接模块:选择cpu module(FX5);之前一直选择的是:FX5-ENET(/IP),选的不对,选对之后,可以测试成功,和gxworks3或者GX2,应该没有直接关系。GX3需要:设置SLMP或者MELSOFT不影响,也可能是因为HMI已经有一个SLMP的缘故。3、行触发时候,触发源可以设置为LINE0/LINE1/LINE3/编码器/分频器。4、分频器的接入信号也可以是LINE1/LINE3/编码器等;可能是设置的编码器模式:正向和反向的方向不对。2、线扫相机不取图;
2025-04-17 13:20:30
346
原创 海康相机(海康机器人千兆网口工业面阵相机用户手册)IO
大三的时候,有个学长说过,有很多东西,不值得记住。所以一直被影响到现在。只记得思路,并不记得参数。虽然有时候参数是压根还原不回来的。接线也是,每次都得查手册对应,完全不记得哪个线序是对应什么,加上每次要接线,都找不到说明书在哪。
2025-04-08 14:48:04
314
原创 线扫相机光源遇到的问题
因为纸袋会跑,所以加了一个亚克力的板子用来压住,板子开了一个槽,这个槽是正对线扫相机视野的。但是放上去之后,中间会有黑色阴影,然后视野就会变暗。光源要打到线扫的那一行上,所以一定会有角度,就是在线扫相机的物方焦平面和光源之间,会被这个板子,板子有厚度,会遮挡,中间出现黑色阴影,现在把这个削掉了。为啥要全切,因为纸袋宽度,从小到大。之后:和不放板子是一样的,都是亮的。之前:中间会有黑色阴影。
2025-03-29 19:43:44
218
原创 halcon案例select_object_model_3d.hdev
select_object_model_3d筛选connection_object_model_3d连通域volume_object_model_3d_relative_to_plane体积max_diameter_object_model_3d外接直径
2025-03-25 00:34:31
1036
原创 halcon案例set_object_model_3d_attrib.hdev
* 在这个示例中,设置了一个三维物体模型的立方体的坐标。* 其次,设置了三角形和颜色。第三,修改了一个三维物体模型的坐标。* 第四,展示了移除已设置属性的过程。* 在所有步骤之间,都会对生成的三维物体模型进行可视化。
2025-03-24 23:52:02
397
原创 halcon例程gen_primitives_object_model_3d.hdev最基础
* 本示例程序展示了如何在 HALCON 中使用以下操作符:* gen_plane_object_model_3d、*gen_sphere_object_model_3d_center、*gen_sphere_object_model_3d、*gen_cylinder_object_model_3d *和 gen_box_object_model_3d。* 在此示例中,一个平面、两个球体、一个圆柱体和一个立方体被设置为不同的姿态。* 生成的三维物体模型的原始形状被可视化显示。
2025-03-24 23:27:22
785
原创 记录一个问题,在几乎相同配置的电脑,我自己电脑不卡,现场电脑很卡-关掉实时保护
测试发现,拖动时,windows Defender这个CPU占用率特别高;所以怀疑和他有关,再加上自己电脑没这东西。现场自己关了实时保护。确实互相之间差一些,但是用好的配置也不行。用自己电脑,很正常,滚动条拖动不卡顿;第一波需要完成整个图像处理并显示。程序赋值到C固态盘,也没用;除了系统,其他都确认没问题;第二波只是一个二值化;
2025-03-20 16:17:19
198
原创 halcon案例distance_pc.hdev
点和contour可以是包含,可以是点在contour上,也可以是点在外。一直没关注过这个算子:最近总在找一个合适的矩形计算的东西。读图并筛选到类圆形,且直接用外界椭圆的方式取得圆心。计算得到圆心位置到待拟合轮廓的最大最小距离。点到contour的距离。
2025-03-18 11:45:10
215
原创 线材连接找方向,并获得线
上篇文章的,想起很多判断是否线材焊接上,或者剪脚是否剪断的问题,刚好找到最近之前评估过一个风险项的。正向没有找完,反向找的时候,角度不对,导致了起点位置没找对,需要局部修改。(3)线的角度偏差较大‘正向找不出,反向也找不出。这里线是白色的,所以用Light。找错位置时候的搜索区域。(1)线没有乱歪曲的。
2025-03-18 11:02:53
262
原创 halcon案例segment_ball_bond_lead_frame
否则,计算Regions与Pattern的开运算面积与Regions面积的比值(以百分比表示)。将Regions中的每个区域与Pattern区域的并集进行比较。如果可能,则从Regions中复制相应的区域。确定从Pattern的边缘到Regions中每个区域边缘的最小最大范数距离(见distance_rr_min_dil)。确定从Pattern的边缘到Regions中每个区域边缘的最小欧几里得距离(见distance_rr_min)。确定Pattern的中心到Regions中每个区域中心的欧几里得距离。
2025-03-18 00:16:59
556
原创 halcon例程track_wires_on_chip.hdev
主要是找线,遍历迭代跟踪起点和终点获得轮廓。第二个:* 将线的所有线段合并为一个覆盖整个轨迹的长轮廓。判断最小值,如果大于5,反向重新查找得到线段。第三个:* * 更新搜索参数以用于下一次迭代。更新起点,以及角度,搜索范围的半径等参数。获取搜索区域,根据已知的起点。如果不是,直接联合在一起。第4个:跟踪到线的区域。初步筛选contour。找到距离起点最近的轮廓。
2025-03-17 23:46:51
473
原创 DeepLearningTool-深度学习分类-和HALCON的详细过程
损失函数:衡量预测误差,用于模型优化。混淆矩阵:评估分类模型性能,提供详细预测结果分析。两者结合使用,可以全面评估和优化模型。过拟合:模型过于复杂,捕捉了噪声,表现为训练集误差低,测试集误差高。欠拟合:模型过于简单,无法捕捉数据模式,表现为训练集和测试集误差都高。调整参数过拟合:简化模型、增加数据、使用正则化、早停、Dropout。欠拟合:增加模型复杂度、特征工程、增加训练时间、调整学习率、使用集成方法。通过合理调整参数和方法,可以有效避免过拟合和欠拟合,提升模型性能。
2025-03-04 22:09:01
5147
原创 视野和焦距
同样的焦距,工作距离越大,视野越大。比如MV-CS200-10GM,25mm的镜头,工作距离200Mm,视野105*70mm;工作距离250,视野是131*88mm。同样的工作距离,焦距越短,视野越大。比如MV-CS200-10GM,工作距200mm,35mm的镜头,目标宽高为75*50mm;25mm的镜头,目标宽高为105*70mm;
2025-03-03 14:50:59
570
原创 拼图和替换图内容
outimage1是由图像1的从第500行开始的2000行,作为第一部分,第二部分是图像2的2000行之后的其余部分,一起组合所成。图像大小和原图一致。此处的output1图是由图像1的最后2000行,作为起始的2000行,后面的用图像2保持不变,两者合并在一起,得到一个大图。此处的output1图是由图像1的最后2000行,作为起始的2000行,后面的用图像2保持不变填充得到一个等大的图。在相机的回调函数中,图像数据通常以 BYTE* 指针的形式提供,同时会提供图像的宽度、高度和位深度等信息。
2025-03-03 00:43:16
663
原创 浅浅的理解消息响应机制
自己写框架,还经常不会用子窗口调用主窗口;指针也用不起来,所以,每次,最终的解决方法就是用消息传递。刚开始在树上看是基于消息响应,其实不太明白干啥的。现在理解的就是,你需要和某人建立关系,然后你俩需要一个指令,这个指令就是消息传递函数,具体传的啥,就看你函数写啥就会执行响应的动作,但是需要知道是谁给谁传递。所以就有一些主从关系和函数在。两年前看QT的框架,发现槽函数和消息响应机制其实都差不多;可惜,当时做的框架也不知道去哪了,现在已经把QT忘光了。
2025-03-02 02:19:04
929
原创 海康相机取图记录
他们用主动取图;我没听过,但是我觉得我应该用过。其实就是用getframetimeout(),只是觉得自己真是没关注过,她又问你是不是用回调取图。确实,我一直用回调取图,因为这家公司大家都是这么用。为此还复习了很久的函数指针和指针函数之间的关系。知道回调函数需要注册。最开始的公司,他们用Halcon的接口取图,嗯
2025-03-02 00:53:41
1282
原创 halcon例程print_quality_smallest_module_size
在 HALCON 中,get_data_code_2d_results 函数用于获取二维数据码(如 QR 码、Data Matrix 等)的解码结果和质量评估信息。当使用 ‘quality_isoiec15415’ 参数时,QualityGrades 返回的是根据 ISO/IEC 15415 标准评估的二维数据码的打印质量等级。Contrast:对比度,数据码域内最小和最大像素强度的范围,对比度越高,等级越好。Grid Non-Uniformity:网格非均匀性,评估数据码在网格上的均匀性。
2025-02-24 15:36:00
688
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅