0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探究halcon模板匹配干扰边缘消除办法

新机器视觉 来源:CSDN技术社区 作者:小邢同学 2021-05-29 13:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

最近做了个项目,遇到一个问题,就是在创建形状匹配模板时候,干扰太多,像麻绳一样。

使用自定义区域去消除吧,因为轮廓长,边缘干扰距离近,操作起来不方便;

使用CAD图形创建模板吧,又因为产品随意性比较强,每次换产品都要从新画模板。

最终决定使用手绘模板的方式解决这个问题。

halcon手绘形状匹配模板

手绘形状匹配模板

为了避免大家产生理解歧义,这里对手绘形状匹配模板做一个解释。

所谓手绘形状匹配模板,就是在图像上画XLD轮廓,将这个XLD轮廓作为形状匹配模板。这样模板就由我们手绘而成,我们想让模板长什么样,就把模板画成什么样。

主要算子解析

draw_nurbs 绘制平滑曲线

draw_nurbs — 界面交互式绘制平滑曲线

draw_nurbs( : ContOut : WindowHandle, Rotate, Move, Scale, KeepRatio, Degree : Rows, Cols, Weights)

我们一般使用时参数设置如下:

draw_nurbs (ContOut1, WindowHandle, ‘true’, ‘true’, ‘true’, ‘true’, 3, Rows, Cols, Weights)

参数解释

ContOut(output_object)xld_cont→对象

与手绘轮廓近似的NURBS曲线。

WindowHandle(input_control)窗口→(整数)

窗口句柄。

Rotate(input_control)字符串→(string)

旋转使能,轮廓交互时可以旋转

默认值:“ true”

值列表:“ false”,“ true”

Move (input_control)字符串→(string)

移动使能,轮廓交互时可以使能

默认值:“ true”

值列表:“ false”,“ true”

Scale(input_control)字符串→(string)

缩放使能,轮廓交互时可以缩放

默认值:“ true”

值列表:“ false”,“ true”

KeepRatio(input_control)字符串→(string)

缩放时是否保持比例,是否等比例缩放

默认值:“ true”

值列表:“ false”,“ true”

Degree(input_control)整数→(整数)

NURBS曲线的曲度。合理的值是3到25。

默认值:3

建议值:2、3、4、5

限制:Degree》 = 2

Rows(output_control)坐标.y数组→(真实)

控件多边形的行坐标。

Cols(output_control)坐标.x数组→(实数)

控件多边形的列坐标。

Weights (output_control)实数数组→(实数)

权重向量。

create_shape_model_xld 使用XLD轮廓创建模板

create_shape_model_xld — 使用XLD轮廓创建模板

create_shape_model_xld(Contours : : NumLevels, AngleStart, AngleExtent, AngleStep, Optimization, Metric, MinContrast : ModelID)

我们一般使用时参数设置如下:

create_shape_model_xld (Contours , ‘auto’,-rad(180), rad(360), ‘auto’, ‘auto’, ‘ignore_local_polarity’, 10, ModelID)

参数解释

Contours (input_object)xld_cont(-array)→对象

输入将用于创建模型的轮廓。

NumLevels(input_control)整数→(整数/字符串)

金字塔等级的最大数量。

默认值:“自动”

值列表:1、2、3、4、5、6、7、8、9、10,“自动”

AngleStart(input_control)angle.rad→(实数)

模板的起始角度。

默认值:-0.39

建议值:-3.14,-1.57,-0.79,-0.39,-0.20、0.0

AngleExtent(input_control)angle.rad→(实数)

模板旋转角度的范围。

默认值:0.79

建议值:6.29、3.14、1.57、0.79、0.39

限制:AngleExtent》 = 0

AngleStep(input_control)angle.rad→(真实/字符串)

旋转角度的步长(分辨率)。

默认值:“自动”

建议值:“自动”,0.0175、0.0349、0.0524、0.0698、0.0873

限制:(AngleStep》 0)&&(AngleStep 《=(pi / 16))

Optimization(input_control)字符串(-array)→(string)

一种优化,以及用于生成模型的可选方法。

默认值:“自动”

值列表:“ auto”,“ no_pregeneration”,“ none”,“ point_reduction_high”,“ point_reduction_low”,“ point_reduction_medium”,“ pregeneration”

Metric(input_control)字符串→(string)

匹配指标。

默认值:‘ignore_local_polarity’

值列表:‘ignore_color_polarity’,‘ignore_global_polarity’,‘ignore_local_polarity’,‘use_polarity’

MinContrast(input_control)编号→(整数)

搜索图像中对象的最小对比度。

默认值:5

建议值:1、2、3、5、7、10、20、30、40

ModelID(输出控制)shape_model→(整数)

模板的句柄。

实例演示与解析

实例代码展示与解析

C#

*读入图片进行显示

read_image (Image, ‘C:/Users/22967/Desktop/ZL2KB/1.bmp’)

dev_close_window ()

dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)

dev_display (Image)

*手绘模板

draw_nurbs (ContOut1, WindowHandle, ‘true’, ‘true’, ‘true’, ‘true’, 3, Rows, Cols, Weights)

*使用XLD轮廓创建模板

create_shape_model_xld (ContOut1, ‘auto’,-rad(180), rad(360), ‘auto’, ‘auto’, ‘ignore_local_polarity’, 10, ModelID)

*得到模板轮廓

get_shape_model_contours (ModelContours, ModelID, 1)

*查找模板

find_shape_model (Image, ModelID, 0, 0, 0.8, 0, 0.5, ‘least_squares’, 0, 0.1, Row, Column, Angle, Score)

*显示查找结果

if(|Row|==0)

dev_clear_window()

dev_display(Image)

set_tposition (WindowHandle, 300, 300)

write_string (WindowHandle, ‘Not Find’)

stop()else

gen_cross_contour_xld (CrossFind, Row, Column, 200, Angle)

endif

运行过程与处理展示

读入图像

绘制模板

使用绘制的XLD创建模板

查找模板

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAD
    CAD
    +关注

    关注

    18

    文章

    1149

    浏览量

    77229
  • 代码
    +关注

    关注

    30

    文章

    4986

    浏览量

    74656

原文标题:halcon模板匹配干扰边缘消除办法

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    TMC2226控制蠕动泵电机,偶发电磁干扰问题有什么解决办法

    电路板示意图,实际使用时安装在步进电机底部,外装金属外壳,确保接地和散热 目前发现这种干扰虽然时有发生,但在管路中有气体混和在液体中的情况下,干扰发生的频率相对较高。 目前咨询了蠕动泵的厂家,对方表示没有一个好的解决办法,所以想
    发表于 06-03 06:06

    SLM2110CG 600V/1A/1.6A高低边门极驱动器,自举浮动通道,匹配延时

    在电机驱动、开关电源及逆变器中,高压半桥驱动需集成自举、抗干扰匹配延迟。SLM2110CG是一款高压、高速功率MOSFET和IGBT驱动器,提供独立的高边、低边输出。采用专有HVIC和锁存免疫
    发表于 06-02 08:42

    音频变压器功能解析:噪声隔离、阻抗匹配与信号平衡转换

    噪声。音频变压器原副边无直接电气连接,可彻底切断地环路路径,同时其共模抑制比(CMRR)可达80dB以上,有效消除底噪。 二、阻抗匹配:保证信号保真度 不同设备阻抗各异(话筒150~600Ω,线路输入
    发表于 04-23 18:41

    变频器模拟给定及反馈信号干扰的解决办法

    变频器作为工业自动化领域的关键设备,其稳定运行直接影响生产效率和设备寿命。然而,在实际应用中,模拟给定信号和反馈信号易受电磁干扰(EMI)影响,导致控制精度下降甚至系统故障。本文将系统分析干扰成因,并结合工程实践提出多维度解决方案。
    的头像 发表于 03-04 11:00 498次阅读
    变频器模拟给定及反馈信号<b class='flag-5'>干扰</b>的解决<b class='flag-5'>办法</b>

    高效静电消除棒,工业应用静电的终结者 #离子棒 #静电消除器 #静电消除 #消除静电产品

    消除
    深圳市荣盛源科技有限公司
    发布于 :2025年12月26日 15:33:46

    请问如何判断电路板是否受到工频干扰的影响,又如何消除?

    我的电路板使用的是光电二极管作为探测器,ADC采集到的数据显示的波形有一个有规律的波动,经过计算大约50Hz,请问我这个是工频干扰吗,怎么消除这种干扰?
    发表于 12-16 19:36

    请问晶振放在板子边缘是会增加干扰吗?

    请问晶振放在板子边缘是会增加干扰吗?
    发表于 12-08 06:07

    ADC采样中如何消除电源纹波对微弱信号(&lt;10mV)的干扰

    ADC采样中,如何消除电源纹波对微弱信号(<10mV)的干扰
    发表于 11-24 06:10

    体积表面电阻率测试仪中电磁干扰的识别与消除实战

    一、电磁干扰的实战识别方法:捕捉异常信号特征​ 电磁干扰会通过测试数据与设备状态呈现明显特征,可通过以下方式精准识别:​ 首先观察数据波动规律。正常测试时,电阻率数值应在稳定区间内小幅波动,若出现
    的头像 发表于 11-14 09:18 720次阅读
    体积表面电阻率测试仪中电磁<b class='flag-5'>干扰</b>的识别与<b class='flag-5'>消除</b>实战

    目标追踪的简易实现:模板匹配

    重新出现在帧图象中时,迅速地重新捕捉到目标。 以上对目标追踪这一领域做了简要的说明,下面将会介绍目标追踪算法中最简单的一种 —— 模板匹配算法。 三、模板匹配算法
    发表于 10-28 07:21

    时序约束问题的解决办法

    slack 计算如下图所示: 所以 slakc 为负数时,说明路径的组合逻辑延时过长。解决办法有两个:第一个是降低时钟频率,第二个是将延时过长的组合逻辑拆成两个或者多个时钟周期执行。 无论 Setup
    发表于 10-24 09:55

    如何使用吸波材料进行电磁干扰的隔离和消除

    使用吸波材料隔离和消除电磁干扰(EMI),核心是“精准匹配干扰频率 + 合理选择材料形态 + 科学安装布局”—— 吸波材料通过吸收电磁波能量(转化为热能)而非反射,避免
    的头像 发表于 10-11 16:54 2481次阅读
    如何使用吸波材料进行电磁<b class='flag-5'>干扰</b>的隔离和<b class='flag-5'>消除</b>?

    部署边缘计算设备时需要考虑哪些问题?

    应对边缘场景的复杂挑战。以下是关键注意事项,按核心维度分类说明: 一、硬件选型:匹配边缘场景的 “环境适应性” 与 “资源平衡” 边缘设备的硬件是基础,需优先解决 “ 环境耐受度 ”
    的头像 发表于 09-05 15:38 1591次阅读
    部署<b class='flag-5'>边缘</b>计算设备时需要考虑哪些问题?

    研华推出ACE应用导向边缘计算解决方案及WISE-STACK私有云平台

    研华科技今日举办法说会,公司2025上半年营收呈双位数成长。面对市场对边缘计算与 AI 的高度需求,研华推出ACE应用导向边缘计算方案与WISE-STACK私有云平台,强化软硬整合与生态协同,加速AI应用落地。
    的头像 发表于 08-12 15:37 2462次阅读

    中型数据中心中的差分晶体振荡器应用与匹配方案

    RAID计算,FCO-7L抗干扰能力强,适用于全天候数据中心负载。 线路布置建议: 近端AC耦合,使用专用时钟线层,避免穿越电源隔离区域。 4. 光模块(QSFP+/OSFP) 匹配方案: FCO-2L
    发表于 07-01 16:33