1. 程式人生 > 實用技巧 >Halcon斑點分析涉及運算元及其高階運用

Halcon斑點分析涉及運算元及其高階運用

涉及運算元

獲取影象

使用ROI

對齊ROI或影象

校正影象

基礎內容這裡不再重述

預處理影象(過濾)

基礎:

mean_image(平均平滑過濾),gauss_filter(高斯濾波),binomial_filter(二項式濾波器),median_image(中值濾波)

高階:

smooth_image(濾鏡過濾),anisotropic_diffusion(各向異性擴散濾波),fill_interlace(針對視訊流影象濾波),rank_image(等級濾波器)

提取分割引數

基礎:

gray_histo_abs(計算絕對灰度值分佈),histo_to_thresh(從直方圖確定灰度值閾值)

高階:

intensity(計算灰度值的平均值和偏差)

分割影象

基礎:

threshold(使用全域性閾值分割影象),fast_threshold(使用全域性閾值快速處理影象),binary_threshold(二進位制閾值),dyn_threshold(區域性閾值),histo_to_thresh,gray_histo(計算灰度值分佈)

高階:

local_threshold(Sauvola演演算法分割),var_threshold(區域性均值和標準差分析分割),watersheds(分水嶺方法),watersheds_threshold(通過閾值使用分水嶺方法),regiongrowing(區域生長),regiongrowing_mean(平均灰度區域生長)

處理區域

基礎:

connection(計算區域的連線元件),select_shape(通過形狀特徵選擇),opening_circle(通過圓形開啟區域),closing_circle(通過圓形封閉區域),opening_rectangle1,closeing_rectangle1,difference(計算區域差異),intersection(計算區域交點),union1(計算區域並集),shape_trans(變換形狀),fill_up(填充區域中的孔)

高階:

select_shape_proto(特定關係選擇區域),select_gray(灰度值特徵選擇區域),clip_region(裁剪區域為),sort_region(區域排序),skeleton(計算區域的骨架),partition_dynamic(動態分割槽),rank_region(區域等級)

特徵提取

基礎:

area_center(中心區域),smallest_rectangle1(平行座標軸的最小矩形),samlllest_rectangle2(任意方向最小矩形),compactness(計算區域緊密度),eccentricity(偏心率),elliptic_axis(橢圓軸),area_center_gray(計算灰度影象中區域的面積和重心),intensity,min_max_gray(計算區域最大最小灰度值)

高階:

diameter_region(計算兩區域邊界點最大距離),inner_rectangle1(區域的最大內部矩形),inner_circle,gray_histo_abs,entropy_gary(確定影象的熵和各向異性)

結果轉換為世界座標

基礎:

image_points_to_world_plane(轉換畫素點)

高階:

gen_contour_region_xld(生成XLD輪廓),contour_to_world_plane_xld(轉換XLD輪廓)

視覺化結果

高階運用

斑點分析實用方法

色彩處理

使用三個顏色通道代替只使用一個灰度通道,Halcon提供了對於彩色影象的一系列運算元,可以和斑點分析結合使用

紋理分析

紋理分析可用於查詢規則和不規則區域,不僅使用單個灰度值,還使用畫素鄰域對區域進行分割

斑點分析替代方案

邊緣提取(精確至亞畫素)

在斑點分析中,用畫素的灰度值描述區域。作為替代,通過改變邊界處的灰度值描述一個區域。這種方法稱為邊緣檢測

分類器

要選擇特定的灰度值,必須先確定閾值。多數情況下,運算元使用固定值或當前值。如果系統自動確定範圍,則很有用,這可以通過使用分類器來實現。此外,分類器還可以用於自動根據提取的特徵和樣本區分好壞物件。

提速

許多線上應用程式需要高速執行。這裡列出了最常用的幾種方法:

  1. 使用ROI幫助程式快速定位檢測區域
  2. 如果物件具有特定的最小尺寸,則運算元fast_threshold是閾值的快速替代方法。在呼叫閾值運運算元之前,也可以使用gen_region和reduce_domain。
  3. 預設情況下,HALCON會執行一些資料的一致性檢查。這些可以通過設定關閉
  4. 預設情況下,HALCON使用帶有引數“ init_new-image”的set_system初始化新影象

    這種行為可以改變

線掃相機

線掃有時必須處理(例如傳送帶上的物體)“無限”序列的影象。在這種情況下結束的一幅影象是下一幅影象的開始。這意味著位於兩個影象中的部分物件必須合併成一個物件。Halcon提供運算元merge_regions_line_scan 幫助合併線掃描影象中的區域。

高精度

有時需要高精度。使用斑點分析很難做到這一點,一種方式是使用高解析度,備選方案是使用灰度值特徵(如area_center_gray),如果物件滿足特定灰度值,則每個畫素都可以分為255個值而不是一個值(前景或背景)。如果需要更高的精度,可以考慮能精確到亞畫素的邊緣和線條提取

PS:Halcon的OCR在預處理階段也使用了斑點分析

靈感源於官方檔案