## 定位和形状模板匹配
要求:
创建形状模板
模板匹配
实时显示
图片:
read_image (Image, 'F:/halcon学习/学习-halcon/1-算法入门作业培训阶段1/9/原图.bmp')
rgb1_to_gray (Image, GrayImage)
dev_get_window (WindowHandle)
*画ROI区域
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
*形成ROI掩膜区域
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
*从原图中裁剪图像
reduce_domain (GrayImage, Rectangle, ImageCrop)
*创建NCC形状模板
create_ncc_model (ImageCrop, 'auto', -3.14, 3.14, 'auto', 'use_polarity', ModelID)
*在灰度图中寻找匹配
find_ncc_model (GrayImage, ModelID, -3.14, 3.14, 0.8, 30, 0.5, 'true', 0, Row, Column, Angle, Score)
tuple_length (Row, Index)
*定义每一个匹配到的区域左上角和右下角坐标
RowLeftTop:=[]
ColLeftTop:=[]
RowRightBottom:=[]
ColRightBottom:=[]
for i := 0 to Index-1 by 1
RowLeftTop[i]:=Row[i]-(Row2-Row1)/2
ColLeftTop[i]:=Column[i]-(Column2-Column1)/2
RowRightBottom[i]:=Row[i]+(Row2-Row1)/2
ColRightBottom[i]:=Column[i]+(Column2-Column1)/2
endfor
stop()
gen_rectangle1 (outRectangle, RowLeftTop, ColLeftTop,RowRightBottom, ColRightBottom)
sort_region (outRectangle, SortedRegions, 'character', 'true', 'row')
count_obj (SortedRegions, Number)
dev_display (Image)
*排序后显示找到的IC
for j := 1 to Number by 1
select_obj (SortedRegions, ObjectSelected, j)
area_center (ObjectSelected, Area, Row3, Column3)
disp_message (WindowHandle, j, 'image', Row3+20, Column3-5, 'red', 'true')
endfor