一 Halcon模板匹配归纳
二 形状匹配算子介绍
find_shape_model(
Image ,//待搜索图像
ModelID, //模版图像
AngleStart, //起始角度
AngleExtent, //角度范围
MinScore, //最小匹配分数
NumMatches, //匹配数目
MaxOverlap, //重叠度
SubPixel, //搜索精度
Greediness ,//自信度
Row, //寻找到模版的行坐标
Column, //寻找到模版的列坐标
Angle, //寻找到模版的角度
Score)//寻找到模版的分数MaxOverlap:对象重叠度
1 SubPixel:搜索精度
2 Greediness :自信度
3 边界处理:
*关闭程序计数器,变量更新,图像窗口更新
dev_update_off ()*关闭窗口
dev_close_window ()*读取模版图像
read_image (Image, 'wafer/wafer_mirror_dies_01')创建与图像大小一样的图形窗口
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)*设置字体属性
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')*定义输出区域,轮廓的线宽
dev_set_line_width (3)*显示图像
dev_display (Image)*在窗口指定位置显示文本的过程
disp_message (WindowHandle, 'Determine the position of mirror dies on the wafer', 'window', 12, 12, 'black', 'true')*在窗口右下角显示文本
disp_continue_message (WindowHandle, 'black', 'true')*停止
stop()
*
*创建一个矩形ROI
gen_rectangle1 (Rectangle, 362, 212, 414, 262)*剪切ROI区域的图像
reduce_domain (Image, Rectangle, ImageReduced)*根据金字塔数和对比度获取输入图像的金字塔图像,金字塔区域
inspect_shape_model (ImageReduced, ModelImages, ModelRegions, 4, 30)*创建形状模版
create_shape_model (ImageReduced, 'auto', rad(0), rad(1), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)*获取模版的轮廓
get_shape_model_contours (ModelContours, ModelID, 1)*
* 开始在搜索图像中搜索模版
for Index := 1 to 4 by 1read_image (Image, 'wafer/wafer_mirror_dies_' + Index$'02')* 计算当前过去的时间,单位是秒count_seconds (S1)*在搜索图像中搜索模版find_shape_model (Image, ModelID, rad(0), rad(1), 0.5, 0, 0.0, 'least_squares', 2, 0.5, Row, Column, Angle, Score)* 计算当前过去的时间,单位是秒count_seconds (S2)Runtime := (S2 - S1) * 1000* 生成十字对象gen_cross_contour_xld (Cross, Row, Column, 6, rad(45))*显示找到的模版轮廓dev_display_shape_matching_results (ModelID, 'lime green', Row, Column, Angle, 1, 1, 0)*设置输出对象的颜色dev_set_color ('orange')*显示图像dev_display (Image)*显示十字dev_display (Cross)stop ()endfor
get_system ('border_shape_models', mode)
* Clear the model
clear_shape_model (ModelID)