尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

HALCON入门指南:从模板匹配到尺寸测量的工业视觉实战

发布时间:2026/9/30 1:24:03

资讯中心
01
ARTICLE

HALCON入门指南:从模板匹配到尺寸测量的工业视觉实战

HALCON入门指南:从模板匹配到尺寸测量的工业视觉实战
我第一回正式用HALCON是在一个手机中框尺寸检测的项目上。当时项目周期压得紧供应商推荐我们用HALCON做定位和测量说这个工具在工业视觉里属于“绕不开”的那一类。我一开始半信半疑毕竟OpenCV也用了好几年什么边缘检测、模板匹配都能写。但真上手HALCON之后我承认自己以前走了不少弯路——不是OpenCV不强而是HALCON把工业视觉里最吃时间、最容易翻车的那些环节比如标定、亚像素边缘提取、基于形状的模板匹配、手眼标定都封装到了可以直接调用的程度还自带一套可视化开发环境HDevelop调试一次成形的效率确实高。这篇是“HALCON学习之旅”系列的第一篇我打算把从零开始接触这套工具时最该搞清楚的东西理一遍包括它为什么在工业项目里这么吃香、开发环境怎么搭、算子体系怎么理解以及一个能直接上手的模板匹配和尺寸测量demo是怎么跑起来的。最后还会聊到和C#、Qt集成时常见的几种姿势以及HALCON和OpenCV选型时我自己的判断标准。适合刚入行机器视觉、准备接手视觉检测项目的朋友哪怕你之前完全没用过HALCON跟着这篇走一遍也能建立起整体框架。1. 为什么工业视觉项目绕不开HALCON1.1 HALCON到底强在哪里先聊一个最常见的问题市面上图像处理库那么多OpenCV免费、开源社区还热闹为什么工业现场还是大量用HALCON我的理解是这样的OpenCV更像一盒乐高积木零件多什么都能拼但拼出来的东西稳不稳定、能不能适应产线环境需要你自己花大量时间去验证。HALCON则更像一套经过工业现场反复锤炼的标准化模块它把很多“通用需求”沉淀成了高性能算子并且针对工业场景做了深度优化。举几个我亲测过的细节首先是亚像素精度。HALCON里做边缘提取一个edges_sub_pix算子出来就是亚像素级别的轮廓配合fit_line_contour_xld拟合直线稳定性能跑到0.01毫米甚至更高。OpenCV当然也能做亚像素但需要自己组合threshold、findContours、cornerSubPix等一串函数参数的敏感性得自己调同样的活开发周期完全不是一个量级。其次是标定体系。HALCON的标定工具是一整套闭环从标定板描述、拍照采集、自动提取角点到计算相机内参外参再到把像素坐标映射到世界坐标都有对应的算子和可视化辅助工具。而畸变矫正、手眼标定这类需求在OpenCV里也有例程但要做成产品级方案需要自己补的坑非常多。还有一个被很多人忽略的点是HALCON对开发者非常友好。HDevelop界面里你每一步算子的输入输出都有可视化反馈图像窗口、变量窗口、算子窗口联动开发时几乎等于“看着结果写代码”这对调试定位问题帮助太大了。OpenCV跑起来你只能打印数值、自己画图看结果效率差距不是一点半点。1.2 学习HALCON需要哪些基础说实话HALCON的上手门槛不算高但如果你想在工作中真正用好有几个基础能力是建议提前具备的。第一是图像处理的基本概念比如灰度直方图、阈值分割、形态学、边缘检测、滤波、仿射变换这些。HALCON虽然把算法封装成了算子但你要知道在什么场景下选什么算子和什么参数。比如threshold分割不出来的时候就得想到能不能先转灰度、做高斯滤波、或者用动态阈值比如模板匹配找不到就得分清是光照问题、遮挡问题还是模板本身选得不好。第二是至少会一门编程语言。HALCON有自己类似Pascal的脚本语法但工程落地基本都要导出到C、C#或者Python。如果你完全没写过代码学HALCON会有点吃力但如果你有过C#或C开发经验那HDevelop只是换了种语法外壳核心逻辑都是一样的。第三是坐标系和几何变换的概念。相机标定、手眼标定、旋转中心标定归根结底都是坐标系之间的变换问题。读写过hom_mat2d系列算子后你会发现很多视觉引导项目就是在做矩阵相乘。这个基础不牢靠后面做项目容易在标定环节卡住。这些基础不要求全部到位才开始学一边做项目一边补就行。但抱着“HALCON是傻瓜式工具、拖拖算子就能出结果”的心态来学后面大概率会碰壁。2. 开发环境搭建从安装到跑通第一个程序2.1 版本选择与下载安装要点HALCON目前主流的版本是HALCON 20.11、HALCON 21.11、HALCON 22.11这种以年月命名的稳定版官网每季度还会有Progress候选版。我自己在产线项目上通常选stready版本也就是稳定版因为Progress版虽然新功能出得快但偶尔会有行为变更改造老项目风险大。安装包分Windows和LinuxWindows下基本是Next Next到底没有太多坑。唯一要注意的是安装路径不要带中文和空格否则后面导出C#/C工程时引用DLL的路径可能会出一些莫名的幺蛾子。License这一块正规渠道是去官网申请试用license一般有1到3个月不等的试用期然后决定是否购买正式授权。HALCON价格不便宜很多个人学习者会觉得劝退。这里我的经验是先用试用版把核心流程跑通确定项目方案再和MVTec或代理商谈授权避免买完发现某些模块用得少、有些模块不够用。安装完成后会得到一个类似这样的目录结构C:\Program Files\MVTec\HALCON-22.11\ ├── bin\x64-win64 # 运行库和DLL ├── doc\html # 官方文档 ├── examples\ # 官方例程 ├── include\ # C/C头文件 └── lib\x64-win64 # 连接库建议把examples目录和doc目录加入书签很多问题查算子用法比上网搜还快。2.2 HDevelop界面布局与关键面板第一次打开HDevelop可能感觉界面信息量很大但实际上核心面板就四个算子窗口列出所有HALCON算子支持按名称搜索双击就能插入到程序里这是写代码最快的入口。程序窗口你写的脚本主体可以逐行执行、断点调试语法风格类似Pascal。变量窗口分为图像变量Iconic和控制变量Control运行时所有中间变量都在这里点击图像变量可以直接在图形窗口查看。图形窗口显示图像、区域、轮廓、XLD等结果的窗口所有可视化都在这里完成。这四个面板配合起来调试流程非常爽程序运行到某一行可以在变量窗口里点击某个图像立刻看到这张图长什么样可以点击某个区域直接在图像上高亮显示还可以右键算子输出结果选择“可视化”功能把ROI、边缘、匹配框叠加显示在图像上。我建议新手花半小时就把这些面板摸一遍尤其是变量窗口里的“查看对象”功能它比任何教程都直观。2.3 跑通Hello World级小程序学任何语言都从Hello World开始HALCON也有它的Hello World。这里我写一个最简单的程序读入一张图片转灰度做阈值分割显示结果。* 读入图像 read_image (Image, printer_chip/printer_chip_01) * 转为灰度图 rgb1_to_gray (Image, GrayImage) * 阈值分割把亮区域提取出来 threshold (GrayImage, Regions, 128, 255) * 显示原图和分割结果 dev_display (Image) dev_set_color (red) dev_display (Regions)在HDevelop里把这段代码贴进去按F6逐行执行就能看到图像窗口中原图、红色区域叠加的显示效果。这里我特意用了read_image加示例图片路径的姿势安装包里自带examples/images目录很多图片可以直接拿来练习。如果路径不对程序会报错Image file not found这时候把路径改成你本机的实际路径就行。跑通这个小程序你对HALCON的基本工作流就有感觉了加载图像、处理图像、显示结果。接下来就是往这个流程里填充更多算子和逻辑。3. HALCON编程范式变量、算子与图像数据流3.1 图像变量与控制变量的本质区别HALCON里变量分两类Iconic图像变量和Control控制变量。这是我刚开始学的时候觉得最需要掰扯清楚的一点。图像变量装的是图像、区域、轮廓、XLD这些视觉数据它不仅仅是像素矩阵还包括坐标变换、特征等信息。控制变量就是普通的数值、字符串、数组比如阈值参数、坐标值、字符串标签。在HDevelop程序窗口里默认缩进不同也能区分图像变量通常大写开头控制变量可以小写开头算子调用时代码看起来非常清晰。一个典型算子的调用长这样threshold (GrayImage, Regions, MinGray, MaxGray)其中GrayImage是输入图像变量Regions是输出区域变量MinGray、MaxGray是输入控制变量。HALCON算子的调用约定非常统一先通道图像变量参数再控制参数养成从右往左读返回值的习惯就行。有个容易犯的错是想用图像变量做算术运算比如把两张图相减。如果你直接写GrayImage1 - GrayImage2会报类型不匹配。正确姿势是用算子sub_imagesub_image (Image1, Image2, SubImage, 1, 128)这里面的逻辑是HALCON的设计哲学所有图像处理操作都用算子完成算子内部会做好内存、类型、通道等一系列处理你不用自己管理缓冲区。刚开始会不习惯但习惯了之后你会发现省心得多。3.2 算子的输入输出约定HALCON算子数量非常庞大官方库几千个但它们的签名高度一致。记好这个规律后很多算子的用法你猜都能猜出来。一个算子的标准结构是* 算子名 (输入图像变量, 输出图像变量, 输入控制变量, 输出控制变量) create_shape_model (ReducedImage, NumLevels, AngleStart, AngleExtent, AngleStep, Optimization, Metric, Contrast, MinContrast, ModelID) find_shape_model (SearchImage, ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, Greediness, Row, Column, Angle, Score)可以看到输入参数在括号左侧输出参数也在括号右侧但没有:赋值HALCON算子的输出都是直接写在参数列表里的。你只要记住“算子名后面跟的所有参数都是该算子的输入输出集合”就行返回多个结果时也不需要你用元组接收它天然就是多返回值。还有一个点是ModelID这种句柄类型的输出变量非常常见。模板匹配的create_shape_model会生成一个模型这个模型保存在ModelID里后续find_shape_model也要用它。这类句柄还是可以序列化保存成文件的比如write_shape_model可以存模板下次启动直接读不用每次重新创建模板这在产线项目里非常实用。3.3 类型转换那些坑HALCON里数值类型和字符串类型转换的算子虽然不多但极其常用也特别容易搞混。搜索引擎里“halcon 转整型实数”能成为热词说明大家都在这上面踩过坑。我常用的几个转换算子* 把字符串转成整数 tuple_int (StringValue, IntValue) * 把字符串转成实数 tuple_real (StringValue, RealValue) * 把整数转成字符串 tuple_string (IntValue, 0, StringValue) * 把实数转成字符串0.3f表示保留3位小数 tuple_string (RealValue, 0.3f, StringValue)还有一个高频需求是字符编码转换比如从串口读到的字符串带编码问题用string_encoding_convert算子转成UTF-8。这在接外围设备的时候经常遇到很多人一开始根本想不到HALCON还管这事儿。另外如果你是从图像里解析数据比如OCR识别出来的是字符串、是数字编号想参与后续逻辑运算一定要记得先tuple_int或tuple_real转换。否则后面做加减乘除、比较大小HALCON会提示类型错误或者直接当字符串处理产出一种“1111”的诡异结果。4. 第一个实用Demo用模板匹配定位工件4.1 为什么要用模板匹配机器视觉项目里最最常见的需求就是“找东西”。视觉引导机器人去抓手机中框你得先告诉机器人中框在相机视野里的位置检测产品有没有放正你也得先找到产品的位置和角度测量尺寸前同样要先确定测量ROI在哪。这个“找位置、找角度”的过程工业界最成熟的做法就是模板匹配。HALCON模板匹配分两大类基于灰度值的模板匹配create_gray_model之类和基于形状的模板匹配create_shape_model。实际产线上基于形状的匹配用得远多于灰度的因为它对光照变化、灰度变化相对不敏感而且能输出亚像素精度的位置和角度。下面我完整写一个基于形状的模板匹配流程这个是做检测项目前最应该练熟的一段代码。4.2 基于形状匹配的代码逐行解析先看代码* 1. 读入模板图和新图 read_image (TemplateImage, template.png) read_image (SearchImage, search.png) * 2. 转灰度 rgb1_to_gray (TemplateImage, GrayTemplate) rgb1_to_gray (SearchImage, GraySearch) * 3. 在模板图上手动框选ROI gen_rectangle1 (ModelRegion, 120, 180, 320, 420) reduce_domain (GrayTemplate, ModelRegion, TemplateReduced) * 4. 创建形状模板 create_shape_model (TemplateReduced, auto, -0.39, 0.79, auto, auto, use_polarity, auto, auto, ModelID) * 5. 固定搜索参数后在搜索图里找 find_shape_model (GraySearch, ModelID, -0.39, 0.79, 0.5, 1, 0.5, least_squares, 0, Row, Column, Angle, Score) * 6. 根据匹配结果生成位置框并显示 tuple_gen_rectangle2 (Row, Column, Angle, 100, 100, CrossRows, CrossCols, CrossPhis, CrossLens1, CrossLens2) disp_cross (WindowHandle, CrossRows, CrossCols, CrossPhis, CrossLens1, CrossLens2)关键参数我一个个说AngleStart、AngleExtent搜索角度范围和步长。如果你的工件在产线上角度基本固定可以设小一点比如-0.1到0.2弧度速度快如果工件可能任意旋转就设-3.14到6.28正负180度。角度范围设得越大匹配时间越长所以要根据实际工况权衡。MinScore最低匹配分数0到1之间。分数越高要求越严格定位越准但也容易漏匹配。我通常从0.5起步调试找不到目标就降找到但不准就升。NumMatches最多输出几个匹配结果。只找一个目标就设1要一图多件就设大一点。MaxOverlap多个匹配结果允许重叠的程度防止同一个目标被框两遍。Greediness搜索贪婪程度0到1之间。值越大概率越低但越快值越小越稳但越慢。现场调试我一般从0.7到0.9开始匹配不到就降到0.5。这几个参数值直接决定了模板匹配在现场的鲁棒性和速度没有一套万能参数必须根据实际图片去试。这也是HDevelop的优势所在——直接在图形窗口里改参数看效果几十秒就能收敛出一组比较合适的参数。4.3 测量类应用与参数调整心得模板匹配通常不会单独作为终点它更多是为后续测量、识别、检测做引导。比如我们要量一个工件的长度流程可以是这样* 1. 先定位工件得到位置和角度 find_shape_model (GraySearch, ModelID, -0.39, 0.79, 0.5, 1, 0.5, least_squares, 0, Row, Column, Angle, Score) * 2. 得到仿射变换矩阵把模板坐标系映射到当前图 vector_angle_to_rigid (0, 0, 0, Row, Column, Angle, HomMat2D) * 3. 在模板坐标系里创建一条测量直线再映射到当前图坐标系 gen_measure_line (100, 100, 300, 100, 0.5, 0.3, MeasureHandle) affine_trans_contour_xld (MeasureContour, MeasureContour, HomMat2D)这里vector_angle_to_rigid是核心它把模板坐标系里的点、轮廓、区域平移到当前匹配位置。实际项目里我会在模板上画好所有测量ROI匹配到目标后再用同一个变换矩阵把它们全部映射过去然后统一做边缘提取和尺寸计算。这样做的好处是只要模板建得准测量基准天然统一不同产品间切换也只是换个模板的事。测量结果出来之后通常会根据公差输出OK/NG信号给PLC或上位机。HALCON里用tuple_length判断测量数组长度用tuple_min/tuple_max取极值再和上下限比较逻辑都很直接。测量的精度和稳定性跟gen_measure_line里的参数有关第一个参数是测量线的起点行坐标第二个是列坐标第三、四个是终点坐标第五个是插值方式第六个是边缘阈值或轮廓宽度。边缘阈值可以根据灰度变化的幅度来调整建议调试时保留至少30灰度差的轮廓否则光照稍微波动就测不准。5. 从HDevelop到工程落地C#、Qt怎么接5.1 几种集成方式对比HDevelop脚本再方便最终都要嫁接到实际的上位机软件里。在我接触过的项目里常见的有三种方式。第一种是导出为C或C#代码。HDevelop的“文件—导出”功能可以把脚本导出成C#、C、VB.NET等代码自动生成对应的项目文件和接口。这种方式优点是省事缺点是导出的代码结构比较乱没有分层概念不太适合接手长期维护的大型软件。第二种是直接用HALCON的通用接口开发C#项目添加HalconDotNet引用调用HDevEngine解释执行.hdev脚本C项目则直接包含hdevelop.h头文件链接halcon库自己管理算子调用。这种方式更灵活适合正规的项目工程化开发。第三种是现代项目里越来越常见的姿势HALCON负责图像处理核心C#或Qt只做界面、交互、逻辑编排两边通过接口交互。HALCON的HDevEngine支持多语言嵌入程序运行时不依赖HDevelop图形界面纯算法执行。我个人的建议是如果是快速验证的方案、工期很紧的Demo用第一种跑通就行如果是交付级项目、需要长期迭代强烈建议用第二种或第三种前期多花半天封装后面省一个月。5.2 导出代码与封装工程实践以C#为例HALCON提供了HalconDotNet程序集你只需要在Visual Studio项目中添加引用路径通常在C:\Program Files\MVTec\HALCON-22.11\bin\dotnet35\halcondotnet.dll。添加对halcon.dll的引用这是HALCON的核心本地库。给工程设置平台目标x64然后在app.config里声明运行时依赖路径否则运行时容易报Failed to load halcon.dll。一个简单的调用长这样using HalconDotNet; HObject image null; HTuple width, height; HOperatorSet.ReadImage(out image, D:\test.png); HOperatorSet.GetImageSize(image, out width, out height); Console.WriteLine(Width: width.I); Console.WriteLine(Height: height.I);这里有个细节HOperatorSet.ReadImage的out HObject传入调用完图像就存在image对象里了。它的内存管理跟HDevelop不一样C#里用完要及时Dispose()否则连续处理大量图片时内存只升不降最后把上位机跑崩。很多人初学C#调用HALCON时都会踩这个坑我的习惯是每个HObject在作用域结束前统一释放一次。如果是Qt项目思路类似。CMake里加find_package(HALCON REQUIRED) target_link_libraries(my_project PRIVATE ${HALCON_LIBRARIES}) target_include_directories(my_project PRIVATE ${HALCON_INCLUDE_DIRS})然后包含HalconCpp.h头文件写起来和C#版本差不多。5.3 HALCON和OpenCV、VisionMaster选型对比许多做视觉的朋友都会问直接用OpenCV不就好了么为啥还要用HALCON这里我聊聊自己的选型标准不吹不黑。选OpenCV的场景算法需要高度自定义、神经网络模型要以OpenCV推理为主、要嵌入边缘设备跑实时检测、项目预算紧张且团队有较强的算法能力。OpenCV的优势是免费、灵活、社区强但你要有心理预期把算法稳定到产线水平需要大量自研和调参。选HALCON的场景交付周期短、精度和稳定性要求高、需要标准化的标定流程、需要丰富的模板匹配/测量/3D算子库、团队希望快速铺开多个视觉工位。HALCON是收费的但这个费用换来的是可靠性和开发效率。很多激光测量设备、3D引导设备的厂商都用它就是因为底层算法经过了大量现场打磨。至于VisionMaster这类以拖拽配置为主的软件它更适合方案集成商做标准化产品、快速搭建整套视觉方案但复杂定制逻辑往往会受限。如果遇到非标算法或者深度学习结合紧密的项目HALCON的灵活性会更好。我的最终建议是不要纠结于工具多练几套工具的核心思想。HALCON用得溜不代表OpenCV写不出来OpenCV写得飞起该项目也可能花个三五天在标定和边缘稳定性上。两者并不冲突很多人都是混合用的反正C#里既能调HALCON也能调OpenCV。6. 常见报错与排查技巧实录6.1 报错信息与排查方法HALCON报错一般很直白但很多新手会忽略错误码和错误描述里的关键信息。这里写几个高频问题。图像对象为空。Image is empty这个报错多半是read_image路径没写对或者reduce_domain裁剪区域不在图像范围内。先查是不是图像没加载成功再看ROI坐标有没有跑出图像边界。Incompatible image size。两张图像尺寸不一致可能是读取的图分辨率变了或者图像预处理产生了尺寸变化。检查每一步输出的宽高加一句get_image_size打印出来看看。Operator not executable for this type。某个算子不支持当前的图像类型或区域类型。比如你拿到的是区域Region却调用XLD相关算子自然报错。HDevelop里把鼠标悬停在变量上能看到类型先确认类型再说。Invalid handle。句柄无效最常见是ModelID在重新创建模板后没有更新或者之前的手眼标定句柄被释放了。解决方法是在调用算子的Handle入参前确保这个句柄已经成功创建并且没有被Dispose。Insufficient memory。大图或长序列处理时遇到多半是中间变量没释放或者HObject没有Dispose。检查代码是否在循环里不断产生图像对象用clear_obj或Dispose及时清理。6.2 参数调试独家技巧调试HALCON程序最爽的一点就是能一边改一边看结果。我的经验是先把重心放在图形窗口上。不要让参数直接改成最终值而是先改一个极端值快速看图像反馈。比如模板匹配找不到先把MinScore从0.5改成0.8观察是不是分数问题再把AngleExtent从0.1改成6.28观察是不是角度范围不够。对于测量类算子可以先在HDevelop里画一条测量线直接把对应的灰度曲线打开看边缘峰值的形状和幅度。这样一眼就知道边缘是陡峭的阈值可以设高边缘是平缓的阈值就要低如果边缘根本不在测量线上说明测量ROI没有对准目标先修正ROI位置而不是调阈值。还有一个我踩过不少次的大坑模板匹配的模板图和使用图如果光照差异大匹配分数会下降得非常明显。解决的办法不是硬调MinScore而是优化采集环境、统一光源或者改用HALCON提供的带use_polarity参数时的“极性”选项。如果工件正反对调导致颜色反转考虑把创建模板时Metric参数改成ignore_local_polarity这个选项对光照反转的容忍度会高很多。7. 后续进阶深度学习、3D视觉与图像拼接7.1 深度学习工具与HALCON深度学习的注意点HALCON从17.12版本开始集成了深度学习模块近几个版本又把训练和推理的体验优化了很多。下过“halcon深度学习工具”的朋友应该知道它有一个独立的标注和训练界面可以训练目标检测、图像分类、语义分割这些模型也能把训练好的模型导出到HDevelop里推理。在工业项目里传统视觉算法和深度学习是互补关系。比如产品表面的划痕检测传统算法对光照极其敏感打光稍微变一下误检率就上去了但用深度学习做异常检测只要样本够、标注合理泛化能力会好不少。不过深度学习也不是万能药它需要大量样本训练周期长而且还存在漏检改不了的脑裂问题。我的建议是能用传统算法稳定搞定的需求坚决不上深度学习只有传统算法明显做不动的打瞌睡再去考虑深度学习。HALCON的深度学习算子在推理速度上做过专门优化apply_dl_model在GPU上跑起来效率还可以。做项目时模型训练好之后HDevelop里调用一下跟其他算子无缝衔接这是它比外接TensorFlow、PyTorch方便的地方。7.2 3D视觉与手眼标定现在3D视觉在工业领域越来越火HALCON的3D模块也相当成熟。从3D传感器读到的点云、深度图可以用read_object_model_3d读取用visualize_object_model_3d显示用xyz_to_object_model_3d等算子做处理。像“3D高度图缩放显示”这类问题本质是把Z方向的数据映射成灰度或伪彩色图像HALCON里用scale_image或自定义灰度映射即可实现并且可以配合dev_display正常显示。手眼标定也是热搜词里的高频需求。所谓“眼在手上”和“眼在手外”两种场景区别就是相机装在机器人末端还是装在固定位置。HALCON提供了calibrate_hand_eye算子输入多组机器人位姿和相机拍的标定板图像输出相机和机器人坐标系变换关系。做这类标定时有一点特别关键采集数据时机器人末端姿态要尽量多样只有一两组几乎相同的姿态标定结果往往会退化精度很差。7.3 图像拼接与边缘提取“halcon图像拼接”在工业检测里常用于大幅面扫描比如板材、面板、PCB整板检测。HALCON的proj_match_points_ransac可以自动找多张图像之间的特征点并计算单应矩阵再用gen_projective_mosaic拼出整幅图。我印象最深的是几年前做PCB拼板检测时用这个方法拼一张10厘米乘10厘米的板子精度和速度都让人满意。“halcon磨砂面提取边缘特征”是更细化的边缘提取需求。磨砂面反光弱、纹理多常规的边缘提取容易找出一堆噪声。这时候要么预处理用中值滤波、平滑去噪再edges_sub_pix提取亚像素轮廓要么用HALCON的texture相关算子先做纹理分析把纹理区域和真实边缘分离出来。实际项目里打光角度往往比算法更能决定成败边缘难提取时先调整光的入射角度和光源类型往往比折腾算子参数更有效。最后的几句经验从安装环境到跑通模板匹配、测量再到考虑和C#、Qt集成这一套下来你其实已经能把HALCON用在很多基础视觉需求上了。我个人在实际项目里最大的体会是HALCON不是拿来背算子的而是在现场不断调试、不断试错建立自己的一套参数体系和工程封装习惯。比如测量类的参数模板、模板匹配的调参基线我都会整理成一份自己的配置表换项目时直接套用初值再微调效率会比每次从零开始高很多。下一篇文章我会挑一个更完整的实战项目继续拆解把模板匹配、测量、手眼标定串起来做成一个能交付的视觉引导方案。到时候再接着聊。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。