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
    +关注

    关注

    17

    文章

    1049

    浏览量

    71765
  • 代码
    +关注

    关注

    30

    文章

    4603

    浏览量

    67386

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

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

收藏 人收藏

    评论

    相关推荐

    Labview与Halcon图片Image互相转换

    Labview 与Halcon 联合开发 分享一下Labview 与Halcon Image格式相互转换的程序, 整理了一个VI,LV_to _Halconxl.vi,可以直接调用,相互转换两种格式
    发表于 06-27 23:00

    LabVIEW模板匹配位置信息导出

    大家好,我在利用ni vision assistant生成的模板匹配界面时,想要将每一个匹配物体的位置信息导出到word或者Excel,但是他这个匹配个数不确定,怎么样把
    发表于 03-11 20:22

    什么叫共模干扰和差模干扰?如何消除通讯线上的干扰

    什么叫共模干扰和差模干扰?如何消除通讯线上的干扰? 共模干扰和差模干扰是在通讯线路中出现的两种主
    的头像 发表于 01-04 16:59 947次阅读

    如何消除EMC对总线系统的干扰

    如何消除EMC对总线系统的干扰? EMC(电磁兼容性)是指不同电子设备在电磁环境中能够和谐共存的能力。现代社会中,我们被无数个电子设备所包围,这些设备会产生电磁辐射,并且相互之间也会产生干扰,从而
    的头像 发表于 12-11 16:44 633次阅读

    OpenCV边缘模板匹配算法原理详解

    ,悲喜交加,充分感受到了理想与现实的距离,不过没关系,这里介绍一种新的模板匹配算法,主要是基于图像边缘梯度,它对图像光照与像素迁移都有很强的抗干扰能力,据说
    的头像 发表于 12-07 10:56 639次阅读
    OpenCV<b class='flag-5'>边缘</b><b class='flag-5'>模板</b><b class='flag-5'>匹配</b>算法原理详解

    AD8232心电工频干扰如何消除

    滤波如下图所示,现在是用软件来消除工频干扰的,请问有什么硬件办法消除这个干扰么(导联包地,然后跟板子上的地相连?),或者推荐款导联?
    发表于 11-23 08:09

    模板匹配算法的改进及在自动发牌机中的应用

    电子发烧友网站提供《模板匹配算法的改进及在自动发牌机中的应用.pdf》资料免费下载
    发表于 11-08 09:53 0次下载
    <b class='flag-5'>模板</b><b class='flag-5'>匹配</b>算法的改进及在自动发牌机中的应用

    变频器维修如何消除信号干扰

    变频器维修如何消除信号干扰
    的头像 发表于 10-17 09:32 807次阅读

    差模干扰是什么及如何消除差模干扰

    差模干扰(差模信号)是一种在差分信号传输系统中出现的干扰模式,这种干扰模式主要是由于电路板上两条差分信号线的长度、宽度和间距等参数不一致所导致的。如果不采取有效的措施进行抑制和消除,差
    的头像 发表于 10-11 13:44 2075次阅读

    openCV的库自带了模板匹配算法吗?

    openCV的库自带了模板匹配算法吗
    发表于 10-10 06:48

    基于HALCON模板匹配方法总结

    对象跟踪这些研究,从中取得较好地效果,简化了用其他工具,比如VC++来开发地过程。在 VC下往往针对不同地图像格式,就会弄地很头疼,更不用说编写图像特征提取、模板建立和搜寻模板地代码呢,我想其中间过程会很复杂,效果也不一定会显著。下面我就具体地谈谈基于
    发表于 09-19 06:13

    can总线干扰信号如何消除

    can总线干扰信号如何消除?  CAN总线是一种广泛应用于自动化系统通信的高效数据传输方式,其基于差分信号传输原理,可以实现高速、实时数据传输。然而,由于各种原因,CAN总线的信号通常会受到干扰,如
    的头像 发表于 09-14 16:48 3863次阅读

    RC电路能消除干扰吗?

    RC电路能消除干扰吗? RC电路是一种常见的电路元件组合,由电阻(R)和电容(C)组成。它在电子工程中被广泛使用,是研究电子噪声、滤波和干扰的主要技术之一。在电子线路中,干扰是一大问题
    的头像 发表于 09-12 14:47 1091次阅读

    泰克示波器工频干扰怎么消除

    泰克示波器是一种常用的测试和调试电子设备的工具。然而,在现实应用中,我们常常会遇到工频干扰的问题,这可能会对示波器的测量结果产生负面影响。所幸的是,有一些方法可以帮助我们有效地消除工频干扰,提高
    的头像 发表于 09-04 17:44 1434次阅读
    泰克示波器工频<b class='flag-5'>干扰</b>怎么<b class='flag-5'>消除</b>?

    磁环消除伺服电机干扰

    磁环消除伺服电机干扰  在现代工业中,伺服电机的应用越来越广泛,它的高速度、高精度、高可靠性等优势在各个行业中得到了广泛应用。然而,在实际应用中,伺服电机还面临一个棘手的问题:电磁干扰。电磁
    的头像 发表于 09-01 14:23 1777次阅读