圖像處理第八章
- 第八章圖像分割
-
- 8.1圖像分割定義
- 8.2使用門檻值進行圖像分割
-
- 8.2.1固定門檻值
- 8.2.2自動門檻值
- 8.2.3最佳門檻值
-
- 8.2.3.1直方圖技術
-
- 直方圖生成代碼imhist()
- 8.2.3.2最大類間方差法(OTSU)
- 8.2.3.3 疊代法求門檻值
- 8.2.4分水嶺分割算法
- 8.3邊緣檢測和連接配接
-
- 8.3.1邊緣檢測
- 8.3.2邊緣連接配接
- 8.4區域分割(區域算法利用像素的相似性)
-
- 8.4.1區域生長法(了解即可)
- 8.4.1區域分裂合并法(ppt裡沒有)
- 8.5二值圖像處理
-
- 8.5.1數學形态學圖像處理
-
- 8.5.1.1概述與集合論基礎知識(重點)
- 8.5.1.2膨脹
- 8.5.1.3腐蝕
- 8.5.1.4應用
- 8.5.2開運算與閉運算
-
- 8.5.2.1開運算
- 8.5.2.2閉運算
- 8.5.3數學形态學應用算法
-
- 8.5.3.1邊界提取
- 8.5.3.2區域填充
- 8.5.3.3連通分量的提取
第八章圖像分割
8.1圖像分割定義
(1)圖像分割處理定義
将數字圖像劃分成互不相交(不重疊)區域的過程
(2)區域定義
像素的連通集
(3)連通定義
在一個連通集中的任意兩個像素之間,存住一條完全由這個集合的元素構成的連通路徑。
8.2使用門檻值進行圖像分割
8.2.1固定門檻值
(1)定義
将整個圖像中的灰階門檻值的值設定為常數。
前提條件:如果背景的灰階值在整個圖像中可合理地看作為恒定,而且所有物體與背景都具有幾乎相同的對比度,那麼,隻要選擇了正确的門檻值,使用一個固定的門檻值一般會有較好的效果。
8.2.2自動門檻值
固定門檻值的改進方法:使用自動門檻值。
在許多的情況下,背景的灰階值并不是常數,物件和背景的對比度在圖像中也有變化,這時,一個在圖像中某一區域效果良好的門檻值在其它區域卻可能效果很差。在這種情況下,把灰階門檻值取成一個随圖像中位置緩慢變化的函數值是适宜的。
在有些著作中,自适應門檻值被稱為動态門檻值。
8.2.3最佳門檻值
除非圖像中的物體有陡峭的邊沿,否則灰階門檻值的取值對所抽取物體的邊界的定位和整體的尺寸有很大的影響。這意味着後續的尺寸(特别是面積)的測量對于灰階門檻值的選擇很敏感。由于這個原因,我們需要一個最佳的,或至少是具有一緻性的方法确定門檻值。
8.2.3.1直方圖技術
含有一個與背景明顯對比的物體的圖像,其有包含雙峰的灰階直方圖
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSP9EVT4tGVONTVE5EM4wmYwhGWhxGZzwEMW1mY1RzRapnTtxkb5ckYplTeMZTTINGMShUYfRHelRHLwEzX39GZhh2css2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3Pn5GcuUjM4AzNwEDM2ETMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
直方圖生成代碼imhist()
imhist()
pic = imread('coins.png');%讀圖
%imshow(pic)顯示原圖
%figure窗體
hist_pic=imhist(pic)%顯示直方圖
或者
pic=imread('coins.png');
subplot(121),imshow(pic),title('原圖');
subplot(122),imhist(pic),title('直方圖');
ps : imhist()就直接顯示了直方圖了,不用加imshow
8.2.3.2最大類間方差法(OTSU)
matlab中函數:graythresh(),ppt上沒有,但應該是很常用的
(1)定義
該算法是在灰階直方圖的基礎上用最小二乘法原理推導出來的,具有統計意義上的最佳分割門檻值。
(2)原理
以最佳門檻值将圖像的灰階直方圖分割成兩部分,使兩部分之間的方差取最大值,即分離性最大。
前提:在圖像中前景與背景之間的灰階分布為互相不重疊的前提下實作對兩類對象的門檻值分割方法。
8.2.3.3 疊代法求門檻值
(1)原理
前提:在圖像中前景與背景之間的灰階分布為互相不重疊的前提下實作對兩類對象的門檻值分割方法。
8.2.4分水嶺分割算法
(1)分割原理
任何的灰階級圖像都可以被看做是一個地形圖
(2)定義
分水嶺分割方法應用在圖像的梯度,那麼集水處在理論上就對應灰階變化最小的區域,而分水嶺就對應灰階變化相對最大的區域.
(3)缺點
缺點:由于噪聲或者局部不規則而引起”過度分割”
(4)改進
防止“過度分割”
(5)等級分割
(1)通過分分水嶺算法,得到一張初始的分割圖檔
(2)以這些相對高度為基礎,再次用分水嶺算法
用兩次分水嶺算法就能得到比較好的分水嶺分割圖
8.3邊緣檢測和連接配接
(1)邊緣點
确定圖像中的物體邊界的另一種方法是先檢測每個像素和其直接鄰域的狀态,以決定該像素是否确實處于一個物體的邊界上。具有所需特性的像素被标為邊緣點。
(2)邊緣圖像
當圖像中各個像素的灰階級用來反映各像素符合邊緣像素要求的程度時,這種圖像被稱為邊緣圖像。
8.3.1邊緣檢測
邊緣檢測算子檢查每個像素的鄰域并對灰階變化率進行量化,通常也包括方向的确定。有若幹種方法可以使用,其中大多數是基于方向導數掩模求卷積的方法。
①Roherts邊緣算子
②Sobel邊緣算子
③Prewitt邊緣算子
④Kirsch邊緣算子
效果圖:
8.3.2邊緣連接配接
(1)問題
如果邊緣很明顯,而且噪聲級低,那麼可以将邊緣圖像二值化并将其細化為單像素寬的閉合連通邊界圖。
然而在非理想條件下,這種邊緣圖像會有間隙出現,需要加以填充。
(2)解決方法
填充小的間隙可以簡單地實作,通過搜尋一個以某端點為中心的5×5或更大的鄰域,在鄰域中找出其它端點并填充上必要的邊界像素,進而将它們連接配接起來。
但是,對具有許多邊緣點的複雜場景,這種方法可能會對圖像過度分割。為了避免過度的分割,可以規定:兩個端點隻有在邊緣強度和走向相近的情況下才能連接配接。
①啟發式搜尋
缺口,兩個端點,找出兩端點間的全局最優路徑(由于啟發式搜尋技術複雜,未必能找到最優)
②曲線拟合
③Hough變換
8.4區域分割(區域算法利用像素的相似性)
區域分割方法是利用圖像的空間性質,考慮了空間關系,分割出來的屬于同一區域的像素具有相似的性質。
較為複雜的圖像空域采用區域分割技術實作。
8.4.1區域生長法(了解即可)
分為:
(1)簡單連接配接
這是基于單個像素的區域增長法,它從滿足的 檢測的點(連接配接核)開始,考察其周圍(4鄰域或8鄰域)的不屬于任何一個區域的點,如果其特性符合接收準則,就把它作為同一個區域加以合并,形成連接配接核,繼而檢測周圍的點,并把符合接入準則的點并入,産生新的核。重複上述過程,直到沒有可并入的點時,生産過程結束。
(2)子區合并法
合并過程:
首先:将圖像分割成個,大小為的小區域(簡
稱子區)。
其次:從左上角第一個子區開始,分别計算子
區和相鄰子區的灰階統計量,然後做相
似性判定。若兩者的灰階分布相似且符
合接收準則。相鄰子區并入目前子區,
形成下一輪判定合并時的目前子區。
8.4.1區域分裂合并法(ppt裡沒有)
8.5二值圖像處理
8.5.1數學形态學圖像處理
ps:開運算去除細小物體(先腐蝕再膨脹),閉運算連通縫隙(先膨脹再腐蝕)
8.5.1.1概述與集合論基礎知識(重點)
(1)數學形态學概述
形态學:一般指生物學中研究動物和植物結構的一個分支
數學形态學(也稱圖像代數)表示以形态為基礎對圖像進行分析的數學工具
基本思想:是用具有一定形态的結構元素去度量和提取圖像中的對應形狀以達到對圖像分析和識别的目的
形态學圖像處理的數學基礎和所用語言是集合論
形态學圖像處理的應用可以簡化圖像資料,保持它們基本的形狀特性,并除去不相幹的結構
形态學圖像處理的基本運算有4個:膨脹、腐蝕、開操作和閉操作
8.5.1.2膨脹
(1)定義
膨脹:使圖像擴大
B和S是兩個集合,B被S膨脹定義為:
D=B⊕S={ (x, y) | S(x, y) ∩ B ≠ ø}
ps:S(x,y)∩B是指當中心點是(x,y)時,結構元素S與原圖B交集不為空就是有交集,那這個中心點就要标記為1。
(2)應用
橋接文字裂縫
優點:在一幅二值圖像中直接得到結果,對比低通濾波方法。
膨脹的作用:連通近鄰的區域;填補目标區域内的小空洞。
8.5.1.3腐蝕
(1)定義
腐蝕:使圖像縮小
B和S是兩個集合,B被S腐蝕定義為:
E=B Θ S={ (x, y) | S(x, y) ⊆ B }
集合S稱為結構元素
ps:S(x, y) ⊆ B 是中心點為(x,y)時,S這個結構元素整個都被原圖B包含,那就要标記中心點(x,y)為1
(2)應用
腐蝕在數學形态學運算中的作用是消除物體邊界點。
如果結構元素取3×3的像素塊,腐蝕将使物體的邊界沿周邊減少一個像素。
腐蝕可以把小于結構元素的物體(毛刺、小凸起)去除,這樣選取不同大小的結構元素,就可以在原圖像中去掉不同大小的物體。
如果兩個物體之間有細小的連通,那麼當結構元素足夠大時,通過腐蝕運算可以将兩個物體分開。
8.5.1.4應用
邊界提取、區域填充、連通分量、凸殼、細化、粗化
8.5.2開運算與閉運算
8.5.2.1開運算
(1)定義
先腐蝕後膨脹的過程稱為開運算。
(2)作用
消除小物體、在纖細點處分離物體、平滑較大物體的邊界的同時并不明顯改變其面積。
8.5.2.2閉運算
(1)定義
先膨脹後腐蝕的過程稱為閉運算。
(2)作用
填充物體内細小空洞、連接配接鄰近物體、平滑其邊界的同時并不明顯改變其面積。
8.5.3數學形态學應用算法
8.5.3.1邊界提取
用原始圖像減去腐蝕結果
(1)定義
β (A)= A−(AΘB)
上式表示:先用B對A腐蝕,然後用A減去腐蝕得到,B是結構元素
8.5.3.2區域填充
(1)定義
定義:設所有非邊界(背景)點标記為0,則将1賦給p點開始,
實作目的:從邊界内的一個點開始,用1填充整個區域
X0=p,如果Xk=Xk-1,則算法在疊代的第k步結束。Xk和A的并集包含被填充的集合和它的邊界
條件膨脹:如果對上述公式的左部不加限制,則上述公式的膨脹将填充整個區域。利用Ac的交集将結果限制在感興趣區域内,實作條件膨脹。
填充孔洞時,A就是那個與圖像四邊框連通的背景區域。
(2)舉例
通過區域填充消除白色圓圈内的黑點
pic=imread('circle.jpg');
BW1=im2bw(pic);%二值化
BW2=bwfill(BW1,'holes');%區域填充
imshow(BW2);%上圖最右邊那個就是效果圖
8.5.3.3連通分量的提取
骨架提取(加入再腐蝕會斷開,則該點加入骨架)