halcon-create_ncc_model創建NCC模板


 

 

在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為空

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM