Halcon閾值分割

2021-09-05 15:36:43 字數 3444 閱讀 4195

1. threshold(image : region : mingray, maxgray : )

全域性閾值分割,適用於環境穩定,目標與背景存在明顯的灰度差的場合。 應用

1:利用灰度直方圖確定閾值進行影象分割。一般是物體與背景之間存在乙個明顯的灰度差,直方圖會存在兩個波峰乙個是目標乙個是背景,那麼閾值就是物體與背景之間的最小值。

read_image (image, 'clip')

gray_histo (image, image, absolutehisto, relativehisto)

gen_region_histo (region, absolutehisto, 255, 255, 1) *

利用直方圖獲取閾值

histo_to_thresh (absolutehisto,10, minthresh, maxthresh) *

期望閾值

targetgray:=23

for index := |minthresh|-1 to 0 by -1

if(minthresh[index]<=targetgray)

minthresh:= minthresh[index]

break

endif

endfor

for index1 := 0 to |maxthresh|-1 by 1

if (maxthresh[index1]>=targetgray)

maxthresh:=maxthresh[index1]

break

endif

endfor *

全域性閾值分割

threshold (image, region1, minthresh, maxthresh)

2. binary_threshold(image : region : method, lightdark : usedthreshold)

自動全域性閾值分割,主要對灰度直方圖存在兩個波峰影象的自動閾值分割。提供兩種方法「

max_separability

」和「smooth_histo」。

最大限度的可分性

(max_separability)

:根據「灰度直方圖的閾值選擇方法」的灰度直方圖自動閾值呼叫。該演算法首先計算影象的直方圖,然後利用統計矩找到將畫素分割為前景和背景的最優閾值,並最大化這兩個類之間的可分性。此方法僅適用於

byte

和uint2

影象。

直方圖平滑

(smooth_histo)

:首先確定灰度值的相對直方圖。然後從直方圖提取相關的最小值,作為閾值操作的引數。為了減少最小值,直方圖被平滑處理為乙個高斯函式,就像在

auto_threshold

中一樣。在平滑直方圖中,掩模尺寸增大,直到得到

2個波峰的最小值。然後,閾值設定為這個最小值的位置。

read_image (image, 'clip')

binary_threshold (image, region, 'max_separability', 'dark', usedthreshold)

3. dyn_threshold(origimage, thresholdimage : regiondynthresh : offset, lightdark : )

區域性閾值分割,當前背景之間差異明顯時,可以設定全域性閾值進行

threshold

,但很多情況下由於背景不均一,目標體經常表現為比背景區域性亮一些或暗一些,無法確定全域性閾值操作,需要通過其鄰域找到乙個合適的閾值進行分割這時就要用到區域性閾值分割了。

4. var_threshold(image : region : maskwidth, maskheight, stddevscale, absthreshold, lightdark : )

均值和標準偏差區域性閾值分割,能夠較好的分開目標和背景,對不適合的引數設定不敏感。

maskwidth

、maskheight

是用於濾波平滑的掩膜單元;

stddevscale

是標準差乘數因子(簡稱標準差因子);

absthreshold

是設定的絕對閾值;

lightdark有4

個值可選,』

light

』、』dark

』、』equal

』、』not_equal』。

需要強調的是

var_threshold

運算元和dyn_threshold

運算元極為類似。不同的是

var_threshold

整合度更高,並且加入了「標準差×標準差因子」這一變數。可以有效地減少雜訊對分割的影響。

5. auto_threshold(image : regions : sigma : )

根據直方圖確定閾值自動全域性閾值分割,執行原理,第一,計算灰度直方圖。第二,高斯平滑後從直方圖提取最小值。第三,根據提取的最小值進行閾值分割。

sigma

越大提取區域越少。

read_image (image, 'fabrik')

median_image (image, median, 'circle', 3, 'mirrored')

auto_threshold (median, regions, 3)

6. fast_threshold(image : region : mingray, maxgray, minsize : )

快速全域性閾值分割,灰度值滿足

mingray<=g<=maxgra

聚合為乙個區域,為了節省時間按兩步執行。第一,先處理行列間隔

minsize

的所有畫素點。第二,處理上一步選擇點的領域。和

threshold

相比分割速度快。

7. watersheds(image : basins, watersheds : : )

分水嶺影象分割。可以分割出分水嶺和盆地。

read_image (br2, 'particle')

gauss_filter (br2, imagegauss, 9)

invert_image (imagegauss, imageinvert)

watersheds (imageinvert, basins, watersheds)

dev_set_draw ('margin')

dev_set_colored (12)

dev_display (br2)

dev_display (basins)

8. watersheds_threshold(image : basins : threshold : )

使用閾值分水嶺影象分割,可以提取分水嶺盆地。

halcon閾值分割

1.threshold image region mingray,maxgray 全域性閾值分割,適用於環境穩定,目標與背景存在明顯的灰度差的場合。read image image,clip gray histo image,image,absolutehisto,relativehisto gen...

halcon自動全域性閾值與動態閾值分割方法

自動全域性閾值分割方法 1 統計直方圖 2 尋找出現頻率最高的灰度值 3 把比最高頻率灰度值或者比它大或小一定灰度階的灰度值作為閾值分割影象 例 read image image,particle gray histo image,image,absolutehisto,relativehiso p...

HALCON閾值運算元總結

閾值運算元 型別特點 threshold 全域性固定 手動指定灰度範圍 fast threshold 全域性固定 手動指定灰度範圍和步長,速度快 binary threshold 全域性自動 基於灰度直方圖,兩種演算法max separability和smooth histo,輸出乙個區域 auto...