当前位置: 首页 > news >正文

视觉检测项目中绕不开的基础操作就是圆心和直线测量。今天咱们就聊聊怎么用Halcon快速实现这两个核心功能,顺便分享些实际项目里踩坑攒出来的经验

视觉平台圆心和直线测量模块,依赖halcon

先看圆心检测。工业场景里经常要定位金属零件上的定位孔,这种场景最怕的就是边缘不连续或者有毛刺。直接上代码:

* 预处理不能少 median_image (Image, ImageMedian, 'circle', 3, 'mirrored') threshold (ImageMedian, Region, 128, 255) connection (Region, ConnectedRegions) select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 5000, 99999) * 精准边缘提取是关键 edges_sub_pix (ImageMedian, Edges, 'canny', 1.5, 20, 40) segment_contours_xld (Edges, ContoursSplit, 'lines_circles', 5, 4, 2) * 找圆三板斧 fit_circle_contour_xld (ContoursSplit, 'geotukey', -1, 0, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder) select_shape_xld (ContoursSplit, SelectedContours, 'radius', 'and', 20, 100)

这里有几个重点:medianimage预处理能有效抑制噪点,edgessubpix的参数组合(1.5,20,40)是经过大量测试验证的黄金组合。特别要注意segmentcontoursxld这个函数,'linescircles'模式会自动分割出可能构成圆或直线的边缘段,能显著提升后续处理效率。

直线测量更讲究抗干扰能力。比如检测液晶屏边缘直线时,经常遇到反光干扰:

* 模板匹配定位ROI create_shape_model (ImageReduced, 'auto', rad(0), rad(360), 'auto', 'auto', 'use_polarity', 'auto', 5, ModelID) find_shape_model (ImageReduced, ModelID, rad(0), rad(360), 0.7, 0, 0.5, 'least_squares', 0, 0.9, RowCheck, ColumnCheck, AngleCheck, Score) * 亚像素级直线提取 gen_rectangle1 (ROI, RowCheck-50, ColumnCheck-100, RowCheck+50, ColumnCheck+100) reduce_domain (ImageMedian, ROI, ImageReduced) edges_sub_pix (ImageReduced, EdgesLine, 'canny', 1.0, 20, 40) line_gauss (EdgesLine, Lines, 0.8, 1.5, 5, 'light', 'true', 'bar-shaped', 'true') * 结果筛选与验证 select_lines_longest (Lines, SelectedLines, 1) get_line_param (SelectedLines, LineParam, 'angle') if(abs(LineParam[0]) > rad(5)) * 角度超差报警 dev_set_color('red') dev_display_line(SelectedLines) endif

这里有个骚操作:line_gauss的'bar-shaped'参数特别适合检测明暗交界线,比直接用Hough变换稳定得多。实战中发现,设置1.5的Sigma值在精度和抗噪之间能达到最佳平衡。

视觉平台圆心和直线测量模块,依赖halcon

参数调试是个技术活。比如edgessubpix的三个参数,我们内部有个经验公式:低对比度场景下,Alpha取1.0~1.5,低阈值=高阈值*0.5。再比如fitcirclecontour_xld的Tukey参数,超过3个像素的偏差点会被自动剔除,这个值设太小容易过拟合,设太大又可能漏检。

异常处理也不能马虎。我们在核心算法外层一定会包上try-catch:

try fit_circle_contour_xld(...) catch (HException &except) dev_get_exception_data(&except, 'error_msg', &message) if(message == 'H_ERR_GCV_NO_CIRCLE') * 启动备用方案 fit_circle_contour_xld(..., 'algebraic', ...) endif endtry

这种设计能让检测模块在极端情况下(比如圆形被遮挡70%)仍然输出合理结果,产线上的良品率直接提升了3个点。

最后说个新发现:Halcon 21.05之后新增的surfacescratchmeasure模块,虽然文档说是检测划痕的,但我们改吧改吧用来测高反光金属件的直线度,效果意外的好。果然官方模块都是宝藏,就看你会不会魔改了。

http://www.jsqmd.com/news/481461/

相关文章:

  • 信息融合与状态估计 主要是针对多传感器多时滞(包括状态之后和观测滞后)系统,带相关噪声多传感器...
  • 分析华北地区靠谱的沙盘制作供应商,哪家值得合作 - myqiye
  • 这场抄袭与镜像的争论,最终是否会以腾讯成为顶级赞助方而和解?这是否会开创一种先上车后补票的大厂开源协作新模式?
  • DSP2833x自动代码生成 Simulik自动生成代码 其中包括22页的代码生成笔记,随书仿...
  • COMSOL模拟热流固耦合作用下二氧化碳驱替甲烷:研究煤层变形、孔渗变化及甲烷产量与二氧化碳封...
  • 2026年全国口碑好的耐磨聚乙烯板品牌供应商推荐,专业厂家全解析 - 工业品牌热点
  • 题目记录(before 暑假 ver.)
  • MinGW下载全攻略:Windows上的GNU开发环境(附安装包,2026最新) - xiema
  • 动力电池充电系统设计(Matlab仿真+Proteus仿真+英文文献+PPT+详细过程说明书)
  • 苏州奥康斯阳光房性价比如何,靠谱供应商产品费用高吗? - mypinpai
  • 别再瞎找了!AI论文写作软件 千笔ai写作 VS 知文AI,专科生专属神器!
  • 嵌入式Linux系统的安装和配置
  • 2026年哈尔滨靠谱的公务员面试培训机构排名 有实力企业大盘点 - 工业推荐榜
  • 千寻百念精选头像小程序源码
  • 这份榜单够用!8个AI论文工具:多场景适配,开题报告+学术论文+毕业论文全搞定
  • 上海落户职称有哪些,如何选择合适的落户服务机构 - 工业品网
  • Sign Up
  • 中小汽修门店汽修单管理系统PHP源码,数字化管理维修订单与客户信息
  • 宠物骨科就医体验分享:从这些方面评估医院水平,24小时宠物医院/异宠/宠物骨科/母猫绝育/宠物眼科,宠物骨科医生有哪些 - 品牌推荐师
  • day51 图论part3
  • 学习周报三十六
  • 2026年3月国内实验室污水处理设备口碑佳的产品推荐,二氧化氯发生器/次氯酸钠发生器,实验室污水处理设备产品怎么选择 - 品牌推荐师
  • 说说南京扬旺中空板周转箱靠谱吗,在上海、广州等地口碑如何 - myqiye
  • 哈尔滨公务员面试强化培训怎么选,友恒公考值得考虑吗? - 工业推荐榜
  • 在OpenClaw争议中,除了技术层面的抓取,是否存在文化层面上拿来主义与贡献者文化的深层冲突?
  • 通信工程毕业论文(毕设)2024开题思路
  • 学长亲荐!千笔AI,碾压级的一键生成论文工具
  • 2026年公务员面试强化培训选哪家,友恒公考本土优势突出 - 工业设备
  • 深圳龙岗区发布龙虾十条政策扶持,政府力量介入一个开源软件项目是否会扭曲市场竞争造成新的寻租空间?
  • 从Linux到OpenClaw,开源项目的走红逻辑发生了什么变化?为什么现在的爆火总是伴随着巨大的争议和焦虑营销?