數字影象處理基礎之--畫素間的關係(鄰接/連通)
影象的畫素的意義
一幅影象,經過取樣和量化之後就可以得到數字影象。數字影象在儲存時,都是由單一的畫素儲存在儲存裝置中。畫素儲存順序是與畫素在數字圖片中原本所處在的物理位置相關,那麼就要了解畫素之間的一些基本關係。在數字影象處理領域,存在著空間域和變換域的概念。數字影象處理的基本操作,有些需要在空間域中進行,而另外的一些則需要在變換域中進行。
空間域:就是指影象的本身,由所採集到的一個個畫素組成。對目標畫素進行常用的處理方法,例如灰度變換和空間濾波兩大類。
變換域:通過特定的變換函式,將影象的畫素變化到目標域中,在變換域中完成相應的操作運算後,再利用反變換核返回到空間域。
由上可知,無論在空間域還是在變換域,畫素都是根本。在大多數的數字影象處理中,畫素之間在運算時都是要發生關係的,這是因為多個畫素構成了影象中的一個物件。
影象是由畫素的形式來儲存的,所以我們以f(x,y)來表示影象,對於特定畫素,分別用p和q來表示。
相鄰畫素
位於座標(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)都有一些點是不存在的,在目前,討論這些畫素點是沒有任何意義。在做特定畫素運算的時候,再根據運算的性質來確定如何來處理邊界畫素的相鄰畫素。
下圖為相鄰畫素的示意圖:
鄰接性、連通性
在灰度影象中,假如灰度位數為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節中,“不鄰接的區域稱為不連線區域”應該是錯誤,修改成“不鄰接的區域稱為不鄰接區域”。
相關推薦
數字影象處理基礎之--畫素間的關係(鄰接/連通)
影象的畫素的意義 一幅影象,經過取樣和量化之後就可以得到數字影象。數字影象在儲存時,都是由單一的畫素儲存在儲存裝置中。畫素儲存順序是與畫素在數字圖片中原本所處在的物理位置相關,那麼就要了解畫素之間的一些基本關係。 在數字影象處理領域,存在著空間域和變換域的概念。數字影象處理
數字影象處理技術之影象壓縮編碼
影象壓縮編碼是專門研究影象資料壓縮的技術,就是儘量減少表示資料影象所需要的資料量 目的:減少儲存空間、縮短傳輸時間 影象壓縮編碼從本質上來說就是對要處理的影象資料按照一定的規則進行變換和組合,從而達到以儘可能少的資料來表示儘可能多的資料資訊。 一、資料的冗餘與相關 1.資
java數字影象處理基礎使用imageio寫影象檔案示例(轉載)
一個BufferedImage的畫素資料儲存在Raster中,ColorModel裡面儲存顏色空間,型別等資訊,當前Java只支援一下三種影象格式- JPG,PNG,GIF,如何向讓Java支援其它格式,首先要 完成Java中的影象讀寫介面,然後打成jar,加上啟動引數- Xbootclasspat
數字影象處理基礎
數字影象處理 數字影象基礎 影象內插 用於影象放大、縮小、旋轉、幾何校正等任務。首先確定變換前後的座標對應關係,用src表示轉換前的影象尺寸,dst表示轉換後的影象尺寸,src’表示轉換後圖像對應於原影象的座標。對於影象縮放,縮放係數t=src/dstt=sr
數字影象處理基礎知-色度空間(RGB\CMY\CMYK\HSI的詳細解釋和一些關聯性描述)
最近在做一些數字影象處理方面的工作,所以想在這裡記錄一下自己在數字影象處理方面的一些基礎知識的積累. 在此記錄一下,畢竟腦容量總是有限的 一、色度空間 色度空間劃分是為了便於以一定標準指定各式各樣的顏色,其實質上是一個標準系統,通過系統中的點來代表每一種顏色。現階段所常用的色度空間分
數字影象處理成長之路4: C語言與離散傅立葉變換(DFT)
這幾天一直學習傅立葉變換,看了很多國內外資料,網上講原理的很多,到了程式實現這塊大多是Matlab,opencv等,這些軟體的api對於我們理解DFT在計算機中的實現並沒有多大幫助。於是想用C/C++實現DFT,經過不斷的閱讀與程式設計實驗,最終程式有了還算滿意
數字影象處理成長之路11:harris角點檢測
前言 時間過去了大約一個月,成長之路已經寫到第11篇,前面的10篇使我得到了鍛鍊,初步體驗了數字影象處理的趣味,同時提高了自己的一些不足。比如數學知識有所鞏固加強。在程式設計的過程中,我只是把原理初步的用c++描述出來,當執行程式後,發現效率總不令人滿意,這也在提醒
Matlab數字影象處理基礎:影象取樣
>> I=imread('lena.bmp'); >> I1=rgb2gray(I); >> imshow(I1),title('a'); >> I2=
數字影象處理3之在影象增強中使用直方圖統計
在影象增強中我們也可以使用直接從直方圖中獲得的統計引數。 1、平均值、方差的定義 令r表示在區間[0 , L-1]上代表離散灰度的離散隨機變數,並且令表示對應於的歸一化直方圖分量,我們可以把看做是灰度級出現的概率估計值。 (1)r的均值定義為: (2)r關於其均值的n
數字影象處理成長之路16:QT中問題的解決辦法androiddeployqt.exe"退出,退出程式碼 14
在Window中安裝好QT,簡單的建立了一個android工程,編譯後出現報錯: ***Starting: “D:\programs\qt\5.9.2\android_armv7\bin\androiddeployqt.exe” –input C:/Users
1-2、數字影象處理基礎
數學建模題目中有時會涉及到與數字影象有關的操作。在這類題目中,往往不會涉及到太多與數字影象處理相關的專業知識,但是要求程式設計師瞭解影象儲存格式與常用基礎操作等。 一、數字影象常用儲存格式。 數字影象在計算機中以矩陣形式儲存,通過一個或多個數字表示每個點
數字影象處理筆記——邊緣連線和直線檢測(Edge linking and line detection)
邊緣連線 我們得到邊緣圖以後會出現是一個問題,就是由於有的畫素偏暗,會出現邊緣不連續的現象,這種情況我們就要採用邊緣連線演算法。我們對每一個邊緣上的點進行遍歷,以這個畫素為中心看一個矩形窗內的其他畫素,如果存在邊緣幅度響應M與邊緣相角響應α都與中心畫素差別不太大的畫素,那麼把這個畫素也納為邊界內
7-Python3從入門到實戰—基礎之數據類型(字典-Dictionary)
from ref 不存在 gpo http 必須 ems href int Python從入門到實戰系列——目錄 字典的定義 字典是另一種可變容器模型,且可存儲任意類型對象;使用鍵-值(key-value)存儲,具有極快的查找速度; 字典的每個鍵值(key=>val
影象處理中的數學原理詳解(Part1 總綱)
數字影象處理技術的研究與開發對數學基礎的要求很高,一些不斷湧現的新方法中,眼花繚亂的數學推導令很多期待深入研究的人望而卻步。一個正規理工科學生大致已經具備了包括微積分、線性代數、概率論在內的數學基礎。但
C語言基礎之常用檔案操作2(附程式碼)
這裡在上一章的基礎上再介紹幾個常用的檔案操作的函式,包括fprintf、fscanf、ftell、fseek等。 檔案操作函式介紹 1、fprintf 函式 函式原型: int fpringf(FILE* stream,const char *forma
Linux的程序程式設計-之二-程序間通訊(訊息佇列)
1.1 系統V訊息佇列 訊息佇列中的每個訊息都有如下的資料結構: struct msgbuf { long mtype; // 訊息型別 char mtext[n]; // 訊息內容,n由使用者自己定義 }; 1.1.1
岡薩雷斯:數字影象處理(二):第二章數字圖形基礎(上)——影象內插,相鄰畫素,鄰接性,距離度量
1.影象內插:從根本上看,內插是用已知資料來估計未知位置的數值的處理。 例如,假設一幅大小為500500畫素的影象要放大1.5倍到75075畫素,一種簡單的放大方法是建立一個假想的750750網格,它與原始影象有相同的間隔,然後將其收縮,使它準確的與原影象匹配。顯然,收縮後的750750網格
python數字影象處理(3):影象畫素的訪問與裁剪
圖片讀入程式中後,是以numpy陣列存在的。因此對numpy陣列的一切功能,對圖片也適用。對陣列元素的訪問,實際上就是對圖片畫素點的訪問。 彩色圖片訪問方式為: img[i,j,c] i表示圖片的行數,j表示圖片的列數,c表示圖片的通道數(RGB三通道分別對應0,1
頻率域濾波基礎之二(讀數字影象處理學習halcon)
二維離散傅立葉(DFT)變化及其反傅立葉變換(IDFT) 傅立葉變換通用形式 對通用形式來講,c=1,s=-1即為傅立葉變化(影象空間域轉頻域);c=1/MN,s=1即為逆變換(頻域轉空間域) halcon運算元fft_generic(Image : ImageFFT
頻率域濾波基礎之五(讀數字影象處理學習halcon)
選擇性濾波 在很多應用中,其中感興趣是處理指定的頻段或頻率矩形。第一類濾波器分別稱為帶阻濾波器或帶通濾波器。第二類濾波器稱為陷波濾波器。 1、帶阻濾波和帶通濾波 D(u,v)是距離頻率矩形中心的距離,D0是頻寬的徑向中心,W是頻寬。一個帶同濾波器可以用從低通濾波器得到高通