1. 程式人生 > >數字影象處理基礎之--畫素間的關係(鄰接/連通)

數字影象處理基礎之--畫素間的關係(鄰接/連通)

影象的畫素的意義

一幅影象,經過取樣和量化之後就可以得到數字影象。數字影象在儲存時,都是由單一的畫素儲存在儲存裝置中。畫素儲存順序是與畫素在數字圖片中原本所處在的物理位置相關,那麼就要了解畫素之間的一些基本關係。

在數字影象處理領域,存在著空間域和變換域的概念。數字影象處理的基本操作,有些需要在空間域中進行,而另外的一些則需要在變換域中進行。
空間域:就是指影象的本身,由所採集到的一個個畫素組成。對目標畫素進行常用的處理方法,例如灰度變換和空間濾波兩大類。
變換域:通過特定的變換函式,將影象的畫素變化到目標域中,在變換域中完成相應的操作運算後,再利用反變換核返回到空間域。
由上可知,無論在空間域還是在變換域,畫素都是根本。在大多數的數字影象處理中,畫素之間在運算時都是要發生關係的,這是因為多個畫素構成了影象中的一個物件。

影象是由畫素的形式來儲存的,所以我們以f(x,y)來表示影象,對於特定畫素,分別用p和q來表示。

相鄰畫素

在這節中主要討論一個畫素p的所有的相鄰畫素,所有的相鄰畫素與畫素p的距離均不超過√2。.
位於座標(x,y)處的畫素p,在水平和垂直方向分別有兩個畫素與其相鄰,對應座標為:
(x+1,y), (x-1,y), (x,y+1), (x,y-1)
這一組畫素稱為畫素p的4鄰域,用N_4 (p)來表示。
對於同樣的畫素p,在其對角方向有4個畫素與其相鄰,對應座標為:
(x-1,y-1), (x-1,y+1), (x+1,y-1), (x+1,y+1)
這一組畫素用N_D (p)來表示。
上面的8個座標點,構成了畫素p的8鄰域,用N_8 (p)來表示。
在討論畫素點的時候,會遇到這樣的情況:畫素p位於影象的邊界,這樣無論是N_4 (p),N_D (p)都有一些點是不存在的,在目前,討論這些畫素點是沒有任何意義。在做特定畫素運算的時候,再根據運算的性質來確定如何來處理邊界畫素的相鄰畫素。

下圖為相鄰畫素的示意圖:


N_8 (p)= N_4 (p)+ N_D (p)

鄰接性、連通性

在灰度影象中,假如灰度位數為8bit,那麼所有的可能灰度取值範圍為[0,255]。為了方便討論和分析,現只考慮二值影象,即灰度值只有0和1兩種情況。定義V為所要討論的畫素的鄰接性灰度值集合。則在二值影象中V={1}。分析三種類型的鄰接:
  • 4鄰接。如果畫素q在集合N_4 (p)中,則具有V中灰度值的兩個畫素q和p是4鄰接的。
  • 8鄰接。如果畫素q在集合N_8 (p)中,則具有V中灰度值的兩個畫素q和p是8鄰接的。
  • m鄰接。如果(1)q在集合N_4 (p)中,或者(2) 畫素q在集合N_D (p)中,且集合N_4 (p)∩N_4 (q)沒有來自V中灰度值的畫素,則具有V中數值的兩個畫素p和q是m鄰接的。
對於鄰接性,更鮮明扼要的解釋如下:
  • 4鄰接。畫素p q的灰度值屬於集合V,畫素q在N_4 (p)中
  • 8鄰接。畫素p q的灰度值屬於集合V,畫素q在N_8 (p)中
  • m鄰接。畫素p q的灰度值屬於集合V,畫素q在N_4 (p)中或者畫素q在N_D (p)中,且集合N_4 (p)∩N_4 (q)沒有來自V中數值的畫素。

下圖分別給出了4鄰接,8鄰接,m鄰接的示意圖。



接下來需要考慮一個問題,在有8鄰接後,為什麼要引入m鄰接的定義呢?在《數字訊號處理》2.5.2節中,作者給出的原因是,ml鄰接主要是為了消除8鄰接的二義性。那麼,二義性怎麼體現呢?首先來解釋什麼是畫素的通路。

畫素的通路

從座標(x,y)的畫素p到座標為(s,t)的畫素q的通路,是由一系列的特定畫素組成的序列,其座標為:
(x0,y0), (x1,y1), …, (xn,yn)
其中(x0,y0) = (x,y), (xn,yn) = (s,t). 並且畫素(xi,yi)和(xi-1,yi-1)對於1≤i≤n是鄰接的(4鄰接,8鄰接,m鄰接)。在這種情況下,n是通路的長度。從畫素p到畫素q就形成了一個畫素通路。

當按照特定的鄰接性來確認畫素的通路時,必須保證通路的唯一性,在下圖的例子中,如果選擇8鄰接,則通路並不是唯一的,所以具有二義性。當考慮m鄰接的時候,則通路就是唯一的,這就是m鄰接可以消除8鄰接的二義性體現。


由上圖可以看出,在從畫素p到畫素q的通路中,如果考慮8鄰接,那麼通路就不具有唯一性。


令S是影象中的一個畫素子集,如果S的全部畫素之間存在一個通路,則可以說兩個畫素p和q在S中是連通的。對於S中的任何畫素p,S中連通到該畫素的畫素整合為S的連通分量。如果S僅有一個連通分量,則集合S成為連通集。概括來說,S中的所有的畫素,每兩個相鄰的畫素之間是相鄰接的(4,8,m),並且只有一個通路,那麼S為連通集。

令R是影象中的一個畫素子集。如果R是連通集,則R被稱作為一個區域。兩個區域Ri和Rj如果能形成一個連通集,那麼稱這兩個區域為鄰接區域。不過在討論是否為鄰接區域的時候,只能考慮區域邊界的畫素是否構成4鄰接和8鄰接,而不考慮m鄰接。在定義區域鄰接的時候,必須指定鄰接型別。

注意:在《數字影象處理第三版》的2.5.2節中,“不鄰接的區域稱為不連線區域”應該是錯誤,修改成“不鄰接的區域稱為不鄰接區域”。

相關推薦

no