失败笔记本--HALCON--0010--202407

失败笔记本-HALCON篇-0010

项目场景:

今天还是什么?对了,还是HALCON,接触的越多,越发感觉HALCON的厉害之处了。今天跟着大佬入门HALCON的基础模板匹配,核心代码只有两句,非常厉害。
实现效果:用左侧的图案在右侧的图中检测出相同形状的元素。

请添加图片描述参考链接:halcon入门教程18_形状模板匹配

1.创建模板

步骤:

  • 首先我们需要打开一张用来做模板的图片,创建模板
  • 上来我就是一套丝滑小连招,把模板要用的图片区域提取了出来:
read_image (Image, 'mask.png')
rgb1_to_gray (Image, GrayImage)
threshold (GrayImage, Regions, 0, 13)
reduce_domain (Image, Regions, ImageReduced)
  • 然后直接利用create_shape_model算子创建模板:
create_shape_model (ImageReduced, 'auto', 0, rad(360), 'auto', 'auto', 'ignore_color_polarity', 'auto', 'auto', ModelID)
  • 算子中需要设置角度:0 到 360度,需要注意转换为弧度单位。
  • 算子中需要设置模式:忽略颜色对比度,‘ignore_color_polarity’。还可以设置忽略局部对比度等等参数。
  • 最后的模板保存一个id在ModelID参数。

2.查找模板

步骤:

  • 直接打开图片!
  • 然后就是简单粗暴的find_shape_model算子:
find_shape_model (Image1, ModelID,0, rad(360), 0.5, 6, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
  • 同样需要设置检测的角度范围,检测几个实例(第六个参数)。
  • 结果会保存对象的行列坐标和置信度。
  • 最后就是找办法输出了,在这里我选择画框:
dev_get_window (WindowHandle)
dev_set_draw ('margin')
hwidth := [150,150,150,150,150,150]
hheight := [100,100,100,100,150,150]
disp_rectangle2 (WindowHandle, Row, Column, Angle, hwidth, hheight)
  • 这里需要注意使用dev_set_draw算子设置只画对象轮廓。
  • disp_rectangle2算子中的参数需要类型一致,行列是元组,边长也得是元组。

总结:

在0010中,用到了以下算子:
create_shape_model()
find_shape_model()
dev_set_draw()
disp_rectangle2()

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值