美文网首页
Halcon 定位算法 模板匹配

Halcon 定位算法 模板匹配

作者: Dorrrris | 来源:发表于2017-11-02 20:34 被阅读0次

写给自己的备忘吧。
主要就是:芯片上左右各有一个mark点,手动框选之后作为模板。在之后的其他芯片照片上做匹配,并且返回坐标。

*读取照片
dev_update_window ('off')
read_image(Origin,'FPC/Pic_2017_09_29_104747_blockId#12909.bmp')
dev_close_window()
dev_open_window_fit_image(Origin,0,0,-1,-1,Handle1)
dev_display(Origin)

*手动选取ROI(1个)
*左边的mark点区域:
gen_rectangle1 (ROI_0, 999.607, 511.753, 1136.14, 651.769)
*右边的mark点区域:
*gen_rectangle1 (ROI_0, 1006.43, 2144.13, 1149.79, 2284.15)
reduce_domain(Origin,ROI_0,ImageReduced)
area_center(ROI_0, Area1, Row2, Column2)
emphasize(ImageReduced, ImageEmphasize, 7, 7, 1)

crop_domain(ImageEmphasize,ImagePart)
area_center (ImagePart, Area, Row, Column)
get_image_size(ImagePart, Width, Height)



*ImagePart 坐标变换
vector_angle_to_rigid (0, 0, 0, Row, Column, 0, HomMat2D) 
vector_angle_to_rigid (0, 0, 0, Row2, Column2, 0, HomMat2D2)


*提取模板
create_shape_model(ImagePart, 10, rad(-10), rad(10), 'auto', 'auto', 'ignore_global_polarity',40,10, ModelID2)
get_shape_model_contours(ModelContours, ModelID2, 1)

select_contours_xld(ModelContours, SelectedContours, 'contour_length', 20, 20000, -0.5, 0.5)
close_contours_xld(SelectedContours,ClosedContours)
select_contours_xld(ClosedContours, SelectedContours1, 'contour_length', 200, 20000, -0.5, 0.5)

*移到中心
affine_trans_contour_xld(SelectedContours1, ContoursAffinTrans1, HomMat2D2)
dev_set_line_width (2)
dev_set_color ('green')
dev_display(Origin)
dev_display(ContoursAffinTrans1)
disp_message (Handle1, 'Model image and contours', 'window', 12, 12, 'black', 'true')
disp_message(Handle1,'Location1: '+Column2+', '+Row2, 'Origin', 200, 200, 'black', 'true')
disp_continue_message (Handle1, 'black', 'true')


dev_close_window ()
dev_open_window(0,0,Width,Height,'white',WindowHandle)
gen_image_const(Image, 'byte', Width, Height)

*第二次提取模板
affine_trans_contour_xld(SelectedContours1, ContoursAffinTran, HomMat2D)
paint_xld(ContoursAffinTran,Image, ImageResult, 255)
create_scaled_shape_model (ImageResult, 5, rad(-10), rad(10), 'auto', 0.8, 1.0, 'auto', 'none', 'ignore_global_polarity', 40, 10, ModelID)
write_shape_model(ModelID,'FPC/Model12909.shm')


dev_clear_window ()
dev_set_color ('blue')
dev_display(ImageResult)

get_shape_model_contours (ShapeModel, ModelID, 1)
disp_continue_message (Handle1, 'black', 'true')

*模板匹配
read_image(Image,'FPC/Pic_2017_09_29_105241_blockId#18797.bmp')
dev_resize_window_fit_image (Image, 0, 0, -1, -1)
dev_display (Image)
disp_message (WindowHandle, 'Search ...', 'window', 12, 12, 'black', 'true')
count_seconds (S1)
find_shape_model(Image, ModelID, rad(-5), rad(5), 0.8, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle, Score)
count_seconds(S2)
Time:=(S2-S1)*1000
disp_message (Handle1, |Score| + ' match(es) found in ' + Time$'3.1f' + ' ms', 'window', 12, 12, 'black', 'true')
********************************
vector_angle_to_rigid(0,0,0,Row1, Column1, Angle, HomMat2D1)
affine_trans_contour_xld(ShapeModel, ContoursAffinTrans, HomMat2D1)
dev_set_line_width (2)
dev_set_color ('yellow')
dev_display ( ContoursAffinTrans)
*****************************************
disp_message(WindowHandle,'Location2: '+Column1+', '+Row1, 'Origin', 200, 200, 'black', 'true')

clear_shape_model(ModelID2)
clear_shape_model(ModelID)

相关文章

  • Halcon 定位算法 模板匹配

    写给自己的备忘吧。主要就是:芯片上左右各有一个mark点,手动框选之后作为模板。在之后的其他芯片照片上做匹配,并且...

  • halcon模板匹配

    halcon的三种模板匹配方法: Component-Based Gray-Value-Based Shaped_...

  • halcon/C++模板匹配

    说明 参考网页 【Halcon】 模板匹配 create_template 与 fast_match_mg[htt...

  • halcon模板匹配总结

    halcon的模板匹配可以归为三类:1、基于灰度:灰度,互相关ncc2、基于形状:形状,组件3、基于描述符:描述匹...

  • Halcon模板匹配之形状匹配

    一、匹配流程 就是:创建模板和匹配模板,其中: 创建模板: 通过BLOB分析处理图像创建ROI,或读取ROI拿到模...

  • 基于HALCON的视频对象分割及跟踪方法总结

    前面总结了利用HALCON进行模板匹配的一些方法,讨论了利用物体形状的轮廓进行匹配的步骤和如何来优化匹配的速度,提...

  • opencv目标跟踪算法 - 草稿

    * kcf算法 * orb算法 * meanshift算法 * camshift * klt * tld * 模板匹配

  • #37周时间统计总结

    一、上周的目标完成情况分析 1、相机的SDK搞定 ✔ 2、模板匹配的与相机联合成功 ❌ 3、测量功能在halcon...

  • Python + selenium 破解极验点击验证码

    0x00 尝试 本来是打算截图定位的,模板匹配的函数都写好了,参见python+opencv 暴力模板匹配,但是后...

  • 字符串匹配的KMP算法

    算法概述 算法主要用于子串的定位,即串的模式匹配。 算法的心路历程 字符串匹配举例一:文本串S=“abcdefga...

网友评论

      本文标题:Halcon 定位算法 模板匹配

      本文链接:https://www.haomeiwen.com/subject/icvapxtx.html