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为空
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为空