【Halcon學(xué)習(xí)筆記】04.圖像分割
1.概述
????????圖像分割是指將圖像中具有特殊意義的不同區(qū)域劃分開來,這些區(qū)域是互不相交的,每一個(gè)區(qū)域滿足灰度、紋理、彩色等特征的某種相似性準(zhǔn)則。圖像分割是圖像分析過程中最重要的步驟之一。常用的圖像分割方法有閾值分割、邊緣檢測(cè)、區(qū)域分割、霍夫變換等。
????????本節(jié)介紹較為常用的閾值分割、邊緣檢測(cè)相關(guān)算子。
2.閾值分割
2.1 概述
????????閾值可理解為一個(gè)指定的像素灰度值的 范圍,假設(shè)閾值為0-255灰度值,閾值處理就是將圖像中的像素灰度值與該閾值進(jìn)行比較, 落在該范圍內(nèi)的像素稱為前景,其余的像素稱為背景。一般會(huì)用黑白兩色表示前景和背景, 這樣圖像就變成了只有黑和白兩種顏色的二值圖像,同時(shí)作為前景被分割出來的部分以 region的形式輸出。
2.2 算子
2.2.1 threshold(Image,?Region, MinGray, MaxGray)?
????????固定閾值分割。適用于環(huán)境穩(wěn)定,目標(biāo)與背景存在明顯的灰度差的場(chǎng)合。?

2.2.2 binary_threshold(Image,?Region, Method, LightDark,?UsedThreshold)
? ? ? ? 自動(dòng)全局閾值分割,主要對(duì)灰度直方圖存在兩個(gè)波峰圖像的自動(dòng)閾值分割。

2.2.3 dyn_threshold(OrigImage, ThresholdImage, RegionDynThresh, Offset, LightDark)?
????????局部閾值分割,當(dāng)前背景之間差異明顯時(shí),可以設(shè)定全局閾值進(jìn)行threshold,但很多情況下由于背景不均一,目標(biāo)體經(jīng)常表現(xiàn)為比背景局部亮一些或暗一些,無法確定全局閾值操作,需要通過其鄰域找到一個(gè)合適的閾值進(jìn)行分割這時(shí)就要用到局部閾值分割了。

2.2.4?var_threshold(Image,?Region, MaskWidth, MaskHeight, StdDevScale, AbsThreshold, LightDark)
????????均值和標(biāo)準(zhǔn)偏差局部閾值分割,能夠較好的分開目標(biāo)和背景,對(duì)不適合的參數(shù)設(shè)置不敏感。MaskWidth、 MaskHeight是用于濾波平滑的掩膜單元;StdDevScale是標(biāo)準(zhǔn)差乘數(shù)因子(簡(jiǎn)稱標(biāo)準(zhǔn)差因子);AbsThreshold是設(shè)定的絕對(duì)閾值;LightDark有4個(gè)值可選,’light’、’dark’、’equal’、’not_equal’。

2.2.5. auto_threshold(Image : Regions : Sigma : )
? ? ? ? 根據(jù)直方圖確定閾值自動(dòng)全局閾值分割,運(yùn)行原理,第一,計(jì)算灰度直方圖。第二,高斯平滑后從直方圖提取最小值。第三,根據(jù)提取的最小值進(jìn)行閾值分割。sigma越大提取區(qū)域越少。

3. 邊緣檢測(cè)
3.1 概述
????????圖像的邊緣是圖像的基本特征,邊緣上的點(diǎn)是指圖像周圍像素灰度產(chǎn)生變化的像素點(diǎn),即灰度值導(dǎo)數(shù)較大的區(qū)域。
? ? ? ? 邊緣檢測(cè)基本步驟包括:平滑濾波>>>銳化濾波>>>邊緣判定>>>邊緣連接。
3.2 算子
3.2.1 roberts(Image,?ImageRoberts,?FilterType)
????????利用局部差分算子尋找邊緣,其特點(diǎn)是邊緣定位較準(zhǔn),但容易丟失部分邊緣,同時(shí)由于圖像沒有經(jīng)過平滑處理,因此不具有抑制噪聲的能力。該算子對(duì)具有陡峭邊緣且含噪聲少的圖像處理效果較好。

3.2.2?sobel_amp(Image,?EdgeAmplitude,?FilterType,?Size)
????????根據(jù)當(dāng)前像素點(diǎn)的八個(gè)領(lǐng)域點(diǎn)的灰度加權(quán)進(jìn)行計(jì)算的算法,利用在邊緣點(diǎn)處達(dá)到極值這一現(xiàn)象進(jìn)行邊緣檢測(cè)。因此,Sobel算子對(duì)噪聲具有平滑作用,可提供較為精確的邊緣信息,但是正是由于局部平均的影響,Sobel算子同時(shí)也會(huì)檢測(cè)出許多偽邊緣,且邊緣定位精度不高。

3.2.3?prewitt_amp(Image,?ImageEdgeAmp)
????????利用像素點(diǎn)上下、左右鄰點(diǎn)的灰度差,在邊緣處達(dá)到極值檢測(cè)邊緣,去掉部分偽邊緣,對(duì)噪聲具有平滑作用 。對(duì)比其他邊緣檢測(cè)算子,Perwitt算子對(duì)邊緣的定位精度不如Roberts算子,實(shí)現(xiàn)方法與Sobel算子類似,但是實(shí)現(xiàn)的功能差距很大,Sobel算子對(duì)邊緣檢測(cè)的準(zhǔn)確性更優(yōu)于Prewitt算子。

3.2.4?edges_sub_pix(Image,?Edges,?Filter,?Alpha,?Low,?High)?
????????在提取邊緣時(shí),根據(jù)提取的邊緣是像素還是亞像素,可將邊緣提取分為像素邊緣提取和亞像素邊緣提取。edges_sub_pix()算子使用遞歸實(shí)現(xiàn)的濾波器(?Deriche、Lanser、Shen、Canny) 提出的傳統(tǒng)實(shí)現(xiàn)的“高斯導(dǎo)數(shù)”濾波器檢測(cè)階梯邊緣。


by Ryou2-