|
51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!
您需要 登录 才可以下载或查看,没有账号?会员注册
x
dev_close_window ()
read_image (Image, '../../Images/Demo.BMP')//读取图像
rgb1_to_gray (Image, Image)
get_image_size (Image, Width, Height)
dev_open_window_fit_image(Image, 0,0,Width,Height,WND)
dev_display (Image)
*-------------------------------------------------
dev_set_draw ('margin')//设置轮廓
dev_set_line_width (3)//设置线宽
ModelIds := []
NumLevels := 4 //金字塔层数'auto'
AngleStart := rad(-10) //识别起始角度
AngleExten := rad(20) //识别角度范围
AngleStep := 'auto' //角度步长
Metric := 'ignore_global_polarity' //图像与模型是颠倒(反相)的,也能够被识别
*-------------------------------------------------
*模板1
dev_set_color ('red')
draw_rectangle1 (WND, Row11, Column11, Row12, Column12)
gen_rectangle1 (Rectangle1, Row11, Column11, Row12, Column12)
reduce_domain (Image, Rectangle1, ImageReduced1)//按区域缩小图像
*创建NCC匹配模型
create_ncc_model (ImageReduced1, NumLevels, AngleStart, AngleExten, AngleStep, Metric, ModelID)
ModelIds := [ModelIds,ModelID]
*-------------------------------------------------
*模板2
dev_set_color ('green')
draw_rectangle1 (WND, Row21, Column21, Row22, Column22)
gen_rectangle1 (Rectangle2, Row21, Column21, Row22, Column22)
reduce_domain (Image, Rectangle2, ImageReduced2)//按区域缩小图像
*创建NCC匹配模型
create_ncc_model (ImageReduced2, NumLevels, AngleStart, AngleExten, AngleStep, Metric, ModelID)
ModelIds := [ModelIds,ModelID]
*-------------------------------------------------
*模板3
dev_set_color ('green')
draw_rectangle1 (WND, Row31, Column31, Row32, Column32)
gen_rectangle1 (Rectangle3, Row31, Column31, Row32, Column32)
reduce_domain (Image, Rectangle3, ImageReduced3)//按区域缩小图像
*创建NCC匹配模型
create_ncc_model (ImageReduced3, NumLevels, AngleStart, AngleExten, AngleStep, Metric, ModelID)
ModelIds := [ModelIds,ModelID]
*-------------------------------------------------
MinScore := 0.6 //最小匹配值
NumMatches := 30 //[1,1,2] //最多可识别的数量
MaxOverlap := 0 //遮盖系数
NumLevels := 4 //金字塔层数
tuple_length(ModelIds, lens)
for i := 0 to lens-1 by 1
set_ncc_model_param (ModelIds, 'timeout', 10000)//超时ms
endfor
*匹配图像目标
count_seconds (Seconds1)
find_ncc_models (Image, ModelIds, AngleStart, AngleExten, MinScore, NumMatches, MaxOverlap, 'true', NumLevels, Row, Column, Angle, Score, Model)
count_seconds (Seconds2)
*从点和角度方面计算一个严格的仿射变换
*-------------------------------------------------
dev_display (Image)//显示图像
if (Score =[])
disp_message (WND, '查找失败,没有找出目标 ', 'image', 12, 12, 'black', 'true')
else
dev_display (Image)//显示图像
gen_cross_contour_xld (Cross, Row, Column, 16, Angle)
disp_message (WND, '模版匹配值: '+ Score$'4.2f', 'image', 10, 12, 'red', 'true')
endif
disp_message (WND, '共耗时: ' + 1000*(Seconds2-Seconds1)+'ms', 'image', 10, 200, 'blue', 'true')
stop()
dev_clear_window()
dev_display (Image) |
|