Halcon斑點分析涉及運算元及其高階運用
- 2020 年 6 月 30 日
- 筆記
- blob analysis, 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提供了對於彩色影像的一系列運算元,可以和斑點分析結合使用
紋理分析
紋理分析可用於查找規則和不規則區域,不僅使用單個灰度值,還使用像素鄰域對區域進行分割
斑點分析替代方案
邊緣提取(精確至亞像素)
在斑點分析中,用像素的灰度值描述區域。作為替代,通過改變邊界處的灰度值描述一個區域。這種方法稱為邊緣檢測
分類器
要選擇特定的灰度值,必須先確定閾值。多數情況下,運算元使用固定值或當前值。如果系統自動確定範圍,則很有用,這可以通過使用分類器來實現。此外,分類器還可以用於自動根據提取的特徵和樣本區分好壞對象。
提速
許多在線應用程式需要高速運行。這裡列出了最常用的幾種方法:
- 使用ROI幫助程式快速定位檢測區域
- 如果對象具有特定的最小尺寸,則運算元fast_threshold是閾值的快速替代方法。在調用閾值運算符之前,也可以使用gen_region和reduce_domain。
- 默認情況下,HALCON會執行一些數據的一致性檢查。這些可以通過設置關閉
- 默認情況下,HALCON使用帶有參數「 init_new-image」的set_system初始化新影像
這種行為可以改變
線掃相機
線掃有時必須處理(例如傳送帶上的物體)「無限」序列的影像。在這種情況下結束的一幅影像是下一幅影像的開始。這意味著位於兩個影像中的部分對象必須合併成一個對象。Halcon提供運算元merge_regions_line_scan 幫助合併線掃描影像中的區域。
高精度
有時需要高精度。使用斑點分析很難做到這一點,一種方式是使用高解析度,備選方案是使用灰度值特徵(如area_center_gray),如果對象滿足特定灰度值,則每個像素都可以分為255個值而不是一個值(前景或背景)。如果需要更高的精度,可以考慮能精確到亞像素的邊緣和線條提取
PS:Halcon的OCR在預處理階段也使用了斑點分析
靈感源於官方文檔