halcon閾值分割

2021-08-28 06:53:51 字數 3109 閱讀 7377

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

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

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 全域性閾值分割,適用於環境穩定,目標與背景存在明顯的灰度差的場合。應用 1 利用灰度直方圖確定閾值進行影象分割。一般是物體與背景之間存在乙個明顯的灰度差,直方圖會存在兩個波峰乙個是目標乙個是背景,那麼閾值就是物體與背景...

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...