【Halcon】模板匹配:解决ROI影响创建模板位置

*绘制ROI裁剪图像进行创建模板时,ROI中心会影响匹配结果

*代码如下:

read_image (Image, 'printer_chip/printer_chip_01')
dev_get_window (WindowHandle)
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
rectangle1_domain (Image, ImageReduced, Row1, Column1, Row2, Column2)
scale_image_range (ImageReduced, ImageScaled, 100, 120)
create_shape_model (ImageScaled, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
find_shape_model (Image, ModelID, -0.39, 0.79, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
get_shape_model_contours (ModelContours, ModelID, 1)
set_display_font (WindowHandle, 42, 'mono', 'true', 'false')
disp_message (WindowHandle, [Row,Column], 'window', 0, 0, 'black', 'true')
dev_display_shape_matching_results (ModelID, 'red', Row, Column, Angle, 1, 1, 0)
disp_cross (WindowHandle, Row, Column, 60, 0)

*第一次运行,绘制ROI

 

 *第二次运行,绘制ROI

 

 可以看到同样的模板轮廓两次匹配出来的结果差距很大,这是因为

模型的ROI作为模板的域传递;

模型图像模板的域(区域)的重心作为模型的原点(参考点)。 

要解决这个问题,需要将模型轮廓的形心为模型的原点;

代码如下:

read_image (Image, 'printer_chip/printer_chip_01')
dev_get_window (WindowHandle)
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
rectangle1_domain (Image, ImageReduced, Row1, Column1, Row2, Column2)
scale_image_range (ImageReduced, ImageScaled, 100, 120)
create_shape_model (ImageScaled, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
get_shape_model_contours (ModelContours, ModelID, 1)
create_shape_model_xld (ModelContours, 'auto', -0.39, 0.79, 'auto', 'auto', 'ignore_local_polarity', 5, ModelID1)
find_shape_model (Image, ModelID1, -0.39, 0.79, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
set_display_font (WindowHandle, 42, 'mono', 'true', 'false')
disp_message (WindowHandle, [Row,Column], 'window', 0, 0, 'black', 'true')
dev_display_shape_matching_results (ModelID1, 'red', Row, Column, Angle, 1, 1, 0)
disp_cross (WindowHandle, Row, Column, 60, 0)

*第一次运行,绘制ROI

 *第二次运行,绘制ROI

 

*结束

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值