Halcon阈值分割方法简析
1. 基于直方圖的自動(dòng)閾值分割
1.1 關(guān)鍵算子
auto_threshold(Image : Regions : Sigma : ):使用多閾值分割單通道圖像。
首先,計(jì)算圖像的灰度直方圖。
然后,使用標(biāo)準(zhǔn)差為Sigma的一維高斯濾波器對(duì)直方圖進(jìn)行濾波。
進(jìn)而,從直方圖中提取相關(guān)灰度極小值,依次作為閾值操作的參數(shù)。每個(gè)灰度值區(qū)間生成一個(gè)區(qū)域。因此,區(qū)域的數(shù)目就是極小值數(shù)加一。
binary_threshold(Image : Region : Method, LightDark : UsedThreshold)
全局自動(dòng)閾值分割,對(duì)灰度直方圖存在兩個(gè)波峰按照不同的方法進(jìn)行分割。
1: 計(jì)算圖像的灰度直方圖。
2:使用max_separability方法(最大限度可分OTSU),適用于直方圖存在兩個(gè)波峰的情況,即圖像前景背景的有明顯區(qū)別。方法是利用統(tǒng)計(jì)矩找到將像素分割為前景和背景的最優(yōu)閾值,并最大化這兩個(gè)類之間的可分性。此方法僅適用于byte和uint2圖像。
3:smooth_histo方法(直方圖平滑),直方圖提取最小值,作為閾值操作的參數(shù)。為了減少最小值,直方圖用高斯函數(shù)平滑處理。在平滑直方圖中,掩模尺寸增大,直到找到最小值。然后,閾值設(shè)置為這個(gè)最小值的位置。
LightDark:表示提取的是黑色部分還是白色部分。
threshold(Image : Region : MinGray, MaxGray : )
根據(jù)圖像的灰度確定閾值進(jìn)行分割。用于物體與背景存在明顯灰度差的圖像。
fast_threshold(Image : Region : MinGray, MaxGray, MinSize : )
快速全局閾值分割。灰度值滿足MinGray<=g<=MaxGray則分割為一個(gè)區(qū)域,為了節(jié)省時(shí)間按兩步執(zhí)行。
第一,先處理行列間隔Minsize的所有像素點(diǎn)。
第二,處理上一步選擇點(diǎn)的領(lǐng)域。
2.局部自動(dòng)閾值分割
2.1 關(guān)鍵算子
dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )
實(shí)際項(xiàng)目中由于圖像背景不一致,目標(biāo)經(jīng)常表現(xiàn)為比背景局部亮一些或暗一些,無法通過全局閾值操作進(jìn)行分割,這時(shí)需要通過求原像素值與濾波后像素值的差找到一個(gè)局部閾值進(jìn)行分割。
其方法為:
1:將OrigImage進(jìn)行濾波平滑處理,得到ThresholdImage 。
2:用OrigImage和ThresholdImage 逐像素進(jìn)行比較,根據(jù)參數(shù)Offset(鄰域比較的區(qū)間范圍)和LightDark分割出相關(guān)區(qū)域。
當(dāng)選擇light時(shí),就篩選出相對(duì)參考圖更亮的區(qū)域,dark相反。選equal時(shí),選取和參考圖差不多的區(qū)域。
var_threshold(Image : Region : MaskWidth, MaskHeight, StdDevScale, AbsThreshold, LightDark : )
該算子為基于圖像均值和標(biāo)準(zhǔn)偏差的局部閾值分割,能夠較好的分開目標(biāo)和背景。
MaskWidth、 MaskHeight:掩膜單元;
StdDevScale:標(biāo)準(zhǔn)差乘數(shù)因子;
AbsThreshold:絕對(duì)閾值;
LightDark:表示希望分割的灰度值亮弱。
具體方法:用掩膜區(qū)域遍歷整幅圖像,與原始圖像的區(qū)域灰度值進(jìn)行對(duì)比,當(dāng)原圖灰度比掩膜區(qū)域的灰度均值低(0.2,12)個(gè)灰階時(shí),即可分割出該區(qū)域。
1、當(dāng)標(biāo)準(zhǔn)差因子StdDevscale>=0時(shí), v(x.y)取(StdDevscale標(biāo)準(zhǔn)差)和AbsThreshold中較大的那個(gè) ;
2、當(dāng)標(biāo)準(zhǔn)差因子StdDevScale<= 0時(shí), v(xy)取(StdDevscale標(biāo)準(zhǔn)差)和AbsThreshold中較小的那個(gè)。
watersheds_threshold(Image : Basins : Threshold : )
分水嶺算法。
1:通過分水嶺算法watersheds()獲取圖像的盆地。
2:若盆地部分的灰度小于設(shè)定的閾值Threshold,則被合并到一起。
總結(jié)
以上是生活随笔為你收集整理的Halcon阈值分割方法简析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle-SYSTEM表空间的备份与
- 下一篇: 【广告】我妹妹导演的毕设——数字传媒摄影