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在預處理階段也使用了斑點分析

靈感源於官方文檔