9 halcon定位學習(1) 基於形狀的匹配

2021-08-08 05:50:30 字數 2944 閱讀 4580

1、 基於形狀的匹配

1> 建立roi

 使用halcon 運算元可以方便的設定roi

 標準形狀

◆ draw_rectangle1/2

◆ draw_circle

◆ draw_ellipse

◆ draw_line

 任意形狀

◆ draw_region

◆ draw_polygon

 生成標準roi

◆ gen_rectangle1/2

◆ gen_circle

◆ gen_ellipse

◆ gen_region_line

 通過xld 建立aoi

◆ gen_region_contour_xld

◆ gen_region_polygon_xld

2> 生成roi

根據建立模板時得到的資料,生成roi區域,例如gen_rectangle2(roi,row,column,phi,length1,length2)

3> 修正roi

 修正函式

◆ erosion_* 減小roi

◆ dilation_* 擴大roi

◆ shape_trans 形狀轉換

◆ boundary 畫素級邊界

◆ move_region 移動區域到新位置

 組合

◆ intersection 交集

◆ difference 差集

◆ union2 並集

4> 直接建立模板

 create_shape_model(

template , // 模板影象

numlevels, // 影象金字塔,將分辨降低n倍

anglestart, // 起始角度

angleextent, // 角度範圍

anglestep, // 角度步長

optimization, // 優化演算法

metric, // 極性,設定模板前景與背景、目標前景與背景的關係

contrast, // 對比度

mincontrast, // 最小對比度

modelid // 模板id

) create_scaled_shape_model

create_aniso_shape_model

注釋:

引數contrast 不僅僅是對比度,陣列元素數量不同,其意義不同

◆ 1個元素時:128,對比度,直接提取邊緣

◆ 2個元素時:[100, 128],表示使用磁滯分割來提取邊緣

◆ 3個元素時:[100, 128, 10],前兩個引數同2,最後乙個引數表示所提取邊緣的最小長度為10.

引數optimization

一些模板包含了太多畫素點,這導致

◆ 模板過大

◆ 增加執行時間

◆ 增加了記憶體需求

 引數optimization 用來減少這些點

◆ none 不減少畫素

◆ point_reduction_low 大約一半點

◆ point_reduction_medium 大約1/3

◆ point_reduction_high 大約1/4

 減少點可能導致的問題

◆ 可能導致無法建立高層金字塔

◆ 有可能會降低結果的精度和準確度原則

◆ 邊緣較多時才減少

 相同環境下, optimization 取值不同時的執行時間對比

◆ none 14.53 ms

◆ point_reduction_low 12.53 ms

◆ point_reduction_medium 11.39 ms

◆ point_reduction_high 10.67 ms

引數-mincontrast

引數mincontrast 是在查詢模板的時候,來減少「有害」邊緣 的。它的 值可通過下面方法得到

◆ estimate_noise函式

◆ inspect_shape_model函式

5> 模板引數-程式獲取

determine_shape_model_params(

template, 模板

『auto』, 金字塔層數

0, 起始角度

rad(360), 角度範圍

0.9, 縮小範圍

1.1, 放大範圍

『auto』, 減少畫素的方法

『use_polarity』, 極性

『auto』, 對比度

『auto』, 最小對比度

『all』 , which values

parametername, name of values

parametervalue) values

6> 通過dxf檔案建立模板

 通過畫素輪廓可以直接建立模板

◆ read_contour_xld_dxf

◆ create_shape_model_xld

◆ create_scaled_shape_model_xld

◆ create_aniso_shape_model_xld

7> 邊界處理

 halcon 提供了兩種邊界處理方法

 set_system (』 border_shape_models』,』false 『)

◆ 模板必須在 roi 內

◆ 靠近邊緣部分會被裁減

 set_system (』 border_shape_models』,』true 『)

◆ 模板可以部分在 roi 外面

◆ 注意:分值會降低

10 halcon定位學習(2) 基於元件的匹配

1 基於元件的匹配 說明 基於元件的匹配是形狀匹配的擴充套件演算法 只有乙個元件會在整個roi 區域搜尋 其餘元件會根據元件之間的關聯關係去小範圍搜尋 條件 組合物體要包含幾個剛性元件 元件之間存在一定的位置關係 元件間的關係 全影象內搜尋 root component 根據root compone...

halcon學習教程1 halcon安裝

halcon是德國mvtec公司開發的一套完善的標準的機器視覺演算法包,擁有應用廣泛的機器視覺整合開發環境。它節約了產品成本,縮短了軟體開發周期 halcon靈活的架構便於機器視覺,醫學影象和影象分析應用的快速開發。在歐洲以及日本的工業界已經是公認具有最佳效能的machine vision軟體。ha...

halcon基於形狀的幾何定位函式說明

1.create shape model template reduce domain後的模板影象 numlevels,金字塔的層數,可設為 auto 或0 10的整數 anglestart,模板旋轉的起始角度 angleextent,模板旋轉角度範圍,0 anglestep,旋轉角度的步長,0 a...