在HDevelop中
dev_close_window ()
read_image (W, 'D:/bb/tu/8.jpg')
rgb1_to_gray (W, GrayImage)
****截取模板图像:O字母****
gen_rectangle1 (Rectangle, 30, 378, 89, 440)
reduce_domain (GrayImage, Rectangle, ImageReduced)
****创建模板****
create_ncc_model(ImageReduced, 'auto', -0.2, 0.2, 0.1, 'use_polarity', ModelID)
*创建NCC模板
*注意:NCC匹配属于钢性匹配,不能有变形
*参数1:单通道图像,它的区域可被创建为模板
*参数2:金字塔的最大层级--层级越高搜索越快
* 值列表:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'auto'
*参数3:模板旋转的起始角度--弧度
*参数4:模板旋转的终止角度--弧度
*参数5:角度步长
* 限制:角度步长>=0和角度步长<=pi/16
*参数6:匹配标准
* 'ignore_global_polarity'
* 'use_polarity'
*参数7:返回的模板句柄
find_ncc_model (GrayImage, ModelID, -0.2, 0.2, 0.8, 2, 0.5, 'true', 0, Row, Column, Angle, Score)
*NCC模板匹配
*该模板必须是调用create_ncc_model或read_ncc_model创建的
*注意:NCC对图像中的遮挡和杂波以及非线性照明变化非常敏感。
* 如果应在遮挡、杂波或非线性照明变化的情况下找到模型,则应使用基于形状的匹配来执行搜索
*参数1:输入图像--单通道图像
*参数2:模板句柄
*参数3:模板旋转的起始角度--弧度
*参数4:模板旋转的终止角度--弧度
* 参数3和参数4 跟create_ncc_model相同
*参数5:被找到的模板最小分数--大于等于这个值才能被匹配
* 默认值:0.8 建议值:0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0
* 典型值范围:0≤ MinScore≤ 1
* 最小增量:0.01 建议增量:0.05
*参数6:要找到的模板实例数
*参数7:要找到的模型实例的最大重叠
*参数8:亚像素精度。 默认值:'true' 值列表:'false'、'true'
*参数9:金字塔层级数
*参数10:Row(out):被找到的模板实例行坐标
*参数11:Column(out):被找到的模板实例列坐标
*参数12:Angle(out):被找到的模板实例的旋转角度
* 理解:看下面图
* 小于1度的时候halcon会返回负值
*参数13:Score(out):被找到的模板实例的分数
* 如果没有匹配到 Score为空
在QtCreator中
HObject ho_W, ho_GrayImage, ho_Rectangle, ho_ImageReduced;
HTuple hv_ModelID, hv_Row, hv_Column, hv_Angle;
HTuple hv_Score;
ReadImage(&ho_W, "D:/bb/tu/8.jpg");
Rgb1ToGray(ho_W, &ho_GrayImage);
//***截取模板图像:O字母****
GenRectangle1(&ho_Rectangle, 30, 378, 89, 440);
ReduceDomain(ho_GrayImage, ho_Rectangle, &ho_ImageReduced);
//***创建模板****
CreateNccModel(ho_ImageReduced, "auto", -0.2, 0.2, 0.1, "use_polarity", &hv_ModelID);
//创建NCC模板
//注意:NCC匹配属于钢性匹配,不能有变形
//参数1:单通道图像,它的区域可被创建为模板
//参数2:金字塔的最大层级--层级越高搜索越快
// 值列表:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'auto'
//参数3:模板旋转的起始角度--弧度
//参数4:模板旋转的终止角度--弧度
//参数5:角度步长
// 限制:角度步长>=0和角度步长<=pi/16
//参数6:匹配标准
// 'ignore_global_polarity'
// 'use_polarity'
//参数7:返回的模板句柄
FindNccModel(ho_GrayImage, hv_ModelID, -0.2, 0.2, 0.8, 2, 0.5, "true", 0, &hv_Row,
&hv_Column, &hv_Angle, &hv_Score);
//NCC模板匹配
//该模板必须是调用create_ncc_model或read_ncc_model创建的
//注意:NCC对图像中的遮挡和杂波以及非线性照明变化非常敏感。
// 如果应在遮挡、杂波或非线性照明变化的情况下找到模型,则应使用基于形状的匹配来执行搜索
//参数1:输入图像--单通道图像
//参数2:模板句柄
//参数3:模板旋转的起始角度--弧度
//参数4:模板旋转的终止角度--弧度
// 参数3和参数4 跟create_ncc_model相同
//参数5:被找到的模板最小分数--大于等于这个值才能被匹配
// 默认值:0.8 建议值:0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0
// 典型值范围:0≤ MinScore≤ 1
// 最小增量:0.01 建议增量:0.05
//参数6:要找到的模板实例数
//参数7:要找到的模型实例的最大重叠
//参数8:亚像素精度。 默认值:'true' 值列表:'false'、'true'
//参数9:金字塔层级数
//参数10:Row(out):被找到的模板实例行坐标
//参数11:Column(out):被找到的模板实例列坐标
//参数12:Angle(out):被找到的模板实例的旋转角度
// 理解:看下面图
// 小于1度的时候halcon会返回负值
//参数13:Score(out):被找到的模板实例的分数
// 如果没有匹配到 Score为空