冈萨雷斯《数字图像处理》读书笔记(九)——形态学图像处理
形態學來自于生物學,研究動植物的形態和結構。運用在圖像中可提取如邊界、骨架和凸殼。初學形態學都是在二值化的圖像上研究,之后可以擴展到灰度圖像。
膨脹和腐蝕
數學形態學與集合論分不開,因為形態學中的操作是基于兩個集合的,一個是待處理的像素集合,一個我們叫做結構元SE。SE的形狀有多種,原點也有多種,但一般是重心,原點在腐蝕erode和膨脹dilate中表示當前要處理的像素點。像卷積一樣,結構元會在圖像上遍歷,所以我們要對集合A填充,使得結構元的原點在A的邊界時,結構元的整體都不會落在圖像之外。到現在我們已經知道了形態學基本操作(腐蝕和膨脹)是基本流程和卷積類似,就是利用一個核對像素遍歷。卷積是計算卷積核中對應像素乘積之和。腐蝕和膨脹則是基于兩個集合的關系。
腐蝕運算的當前像素的結果是兩個集合做邏輯與運算,如果SE所占區域和A的一部分是完全重合的,即SE完全屬于集合A,那么這一點就取集合A內的值。腐蝕其實是擊中擊不中變換的簡化。擊中擊不中變換可用于檢測圖像中目標形狀的原點位置,使用的前提條件是圖像中的物體之間是斷開的,即每個物體被至少一個像素寬的背景像素所環繞。對A和A的補集分別利用D和W-D進行腐蝕,腐蝕結果的交集就是目標的原點。D就是目標,W-D代表與背景相聯系的集合。
膨脹是兩個集合做或運算,只要部分重合,就把當前像素設置為集合A中的值。膨脹的最簡單應用之一是橋接裂縫。而膨脹在連接處細于結構元時會斷開。膨脹的一個應用是條件膨脹,可用于孔洞填充,如圖像中有一些球體,但是球體中有反光,利用孔洞填充可以消除反光。具體方法是在邊界內找到初始點,利用結果元進行迭代,一次迭代是膨脹后與A的補集求交集,交集的目的是尋找背景點。當膨脹之后與A取交集,這時候取的是前景點,可以用于連通分量的提取。
注意我們描述待處理圖像A和結構元都是把他們當做集合,膨脹和腐蝕的具體運算也是兩個集合之間的關系進行運算,得到的結果也是當做一個集合進行描述。結果的集合是結構元在圖中遍歷中的所有結果的集合,具體遍歷的方式在腐蝕中表現為平移z,在膨脹中表現為結構元的反射(中心對稱)的z平移。
還需要注意的是對一幅圖(先考慮二值圖)中哪些是集合A,我的理解是這個要具體問題具體分析,當結構元元素是白色時,處理的就是圖像中的白色區域。
開運算和閉運算
開操作,先腐蝕后膨脹。一個幾何解釋是開運算是結構元B在A的內側滾動時所能達覆蓋的最大面積。從公式可以看出開運算和腐蝕都是平移后進行條件判斷,判斷條件是平移之后完全屬于集合A,但是結果的操作對象取的不再是結構元的原點,而是平移之后的結構元整體。因為結構體是在A內部平移遍歷的,且取的是結構元所能覆蓋的面積的最大值,這使得開操作有一個性質:開操作之后的集合是A的子集。開操作同時會斷開一些窄的連接和細的突出,可用于消除椒鹽噪聲。
閉操作和開操作的彼此對偶的。
結構元B對A的閉操作可以看作B的反射對A的補集的開操作,得到的結果再取補集。性質同樣對偶,A是閉操作結果的子集。
形態學還可以用于獲得集合A的凸殼C(A)。如果A內任意兩個點的連線都在A的內部,那么A就是凸集(凸形)。凸殼是包含于A的最小凸集。獲得凸集的方法依然是迭代,使用多個結構體對A做擊中擊不中變換,執行與A的并集,得到的結果再取并集。
根據擊中擊不中變換,還可以達到細化和粗化。
可以用連續腐蝕和開操作得到骨架。
細化和骨架算法會保留一些寄生分量,因而需要用后處理來消除這些寄生分量。
形態學重建,設計兩幅圖像和結構元,一幅圖像用于標記變換的起始點,一幅圖像是模板,用于約束該變換。在形態學重建中,核心是測地膨脹和測地腐蝕。
總結
以上是生活随笔為你收集整理的冈萨雷斯《数字图像处理》读书笔记(九)——形态学图像处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Python快速入门》基础知识扫盲课
- 下一篇: 《画解算法》3. 无重复字符的最长子串【