Halcon 二維測量_內外卡尺


相關算子鏈接:https://www.mvtec.com/doc/halcon/12/en/toc_2dmetrology.html

參考案例:

apply_metrology_model_diamond.hdev

apply_metrology_model.hdev

 

基本流程:

1,創建計量模型

  create_metrology_model (MetrologyHandle)

2,設置計量模型的圖像大小

  set_metrology_model_image_size (MetrologyHandle, Width, Height)

3,將計量對象添加至計量模型中.(矩形,直線,圓,橢圓)

  add_metrology_object_rectangle2_measure  //矩形

  add_metrology_object_circle_measure    //圓或圓弧

  add_metrology_object_line_measure     //直線

  add_metrology_object_ellipse_measure  //橢圓或圓弧

4,設置計量模型參數

  set_metrology_model_param  

  GenParamName:   'camera_param'//相機內參;'plane_pose'相機外參;'reference_system':參考位置,Value:[row, column, angle];  'scale':縮放比例

5,設置計量對象參數

  set_metrology_object_param

    創建計量區域:

      'measure_length1':半寬;  'measure_length2':半高

    邊緣檢測:

      'measure_sigma':高斯平滑的sigma;  'measure_threshold'最小邊緣閾值  'measure_select'選擇結束點'all''first''last'  

      'measure_transition':深色/淺色或淺色/深色邊緣;  'positive'正邊緣(暗/亮邊緣);'negative'負邊緣(亮/暗邊緣);'uniform' 一致正邊緣或一致負邊緣,擬合時僅用一個方向的點擬合直線或圓

      'measure_interpolation'插值類型;  “ bicubic”雙三次“ bilinear”雙線性“ nearest_neighbor”近鄰  

     擬合幾何形狀:

      'min_score'最小分數  'num_instances'擬合實例最大數量  

6,定位計量模型

  align_metrology_model

7,測量並擬合

  align_metrology_model

8,獲取結果

  get_metrology_object_result  獲取測量對象的數據結果

  get_metrology_object_result_contour   獲取測量對象的結果輪廓

  get_metrology_object_measures  獲取計量模型的測量區域和邊緣定位結果 

9,刪除並釋放計量模型的句柄

   clear_metrology_model

 

 

read_image (Diamond01, 'diamond_01.png')
get_image_size (Diamond01, Width, Height)
dev_set_line_width (3)
*1生成計量模板
create_metrology_model (MetrologyHandle)
*2設置計量模型圖像大小
set_metrology_model_image_size (MetrologyHandle, Width, Height)
*3添加計量幾何形狀
* gen_region_line (ROI_0, 153.146, 402.104, 297.938, 223.979)
* gen_region_line (TMP_Region, 152.104, 398.458, 272.938, 555.75)
lineRBegin:=[153,152]
lineCBegin:=[402,398]
lineREnd:=[297,272]
lineCEnd:=[223,555]
add_metrology_object_line_measure (MetrologyHandle, lineRBegin, lineCBegin, lineREnd, lineCEnd, 20, 5, 1, 30, [], [], LineIndex)
*4設置計量模型參數
set_metrology_model_param (MetrologyHandle, 'reference_system', [160,400,0])
*set_metrology_object_param (MetrologyHandle, 'all', 'num_instances', 2)
list_files ('E:/Halcon/Halcon練習/Week 04/day 01/diamond', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1
    read_image (Image, ImageFiles[Index])
    gen_rectangle1 (ROI_0, 69.8125, 173.979, 251.063, 628.146)
    reduce_domain (Image, ROI_0, ImageReduced)
    threshold (ImageReduced, Regions, 173, 255)
    get_region_points (Regions, Rows, Columns)
    *5計量模型定位
    align_metrology_model (MetrologyHandle, Rows[0], Columns[0], 0)
    *6測量應用
    apply_metrology_model (ImageReduced, MetrologyHandle)
    *7獲得結果
    get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'all_param', Parameter)
    get_metrology_object_result_contour (Contour, MetrologyHandle, 'all', 'all', 1.5)
    
    dev_display (Image)
    dev_display (Contour)    
    stop ()
endfor
clear_metrology_model (MetrologyHandle)

 


免責聲明!

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



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