數(shù)字圖像處理之鄰域處理.ppt
數(shù)字圖像處理,第七章 鄰域運算,CH7 鄰域運算,一、引言 二、平滑 三、中值濾波 四、邊緣檢測 五、細化 上機實習,1 引言,1)鄰域運算 定義 輸出圖像中每個像素是由對應的輸入像素及其一個鄰域內(nèi)的像素共同決定時的圖像運算。 通常鄰域是遠比圖像尺寸小的一規(guī)則形狀。如下面情況中,一個點的鄰域定義為以該點為中心的一個圓內(nèi)部或邊界上點的集合。,鄰域運算與點運算一起構成最基本、最重要的圖像處理方法。,點+的鄰域,點+的鄰域,1 引言,1 引言,舉例 進一步的表達,$進一步閱讀:Gonzalez, p91.,1 引言,2)相關與卷積 信號與系統(tǒng)分析中基本運算相關與卷積,在實際圖像處理中都表現(xiàn)為鄰域運算。 兩個連續(xù)函數(shù)f(x)和g(x)的相關記作: 兩個連續(xù)函數(shù)f(x)和g(x)的卷積定義為:,1 引言,3)模板(template,filter mask)的相關與卷積運算 給定圖像f(x,y)大小N*N,模板T(i,j)大小m*m(m為奇數(shù))。 常用的相關運算定義為:使模板中心T(m-1)/2,(m-1)/2) 與f(x,y)對應。,演 示,1 引言,相關運算,1 引言,卷積運算定義為:,1 引言,4)相關與卷積的物理含義 相關運算是將模板當權重矩陣作加權平均; 而卷積先沿縱軸翻轉(zhuǎn),再沿橫軸翻轉(zhuǎn)后再加權平均。 如果模板是對稱的,那么相關與卷積運算結果完全相同。 鄰域運算實際上就是卷積和相關運算,用信號分析的觀點就是濾波。,2 平滑,圖像平滑的目的 是消除或盡量減少噪聲的影響,改善圖像的質(zhì)量。 假設 在假定加性噪聲是隨機獨立分布的條件下,利用鄰域的平均或加權平均可以有效的抑制噪聲干擾。 從信號分析的觀點 圖像平滑本質(zhì)上低通濾波。將信號的低頻部分通過,而阻截高頻的噪聲信號。 問題 往往圖像邊緣也處于高頻部分。,2 平滑,1)鄰域平均(矩形鄰域和圓形鄰域) 注意:大卷積模板可以加大濾波程度,但也會導致圖像細節(jié)的損失。,2 平滑,對比說明,有高斯噪聲的朱家角風光,無噪聲朱家角風光,2 平滑,鄰域平滑,通過T3鄰域平均后的朱家角風光,通過T5鄰域平均后的朱家角風光,2 平滑,2)高斯濾波(Gaussian Filters) 采用高斯函數(shù)作為加權函數(shù)。 原因一:二維高斯函數(shù)具有旋轉(zhuǎn)對稱性,保證濾波時各方向平滑程度相同; 原因二:離中心點越遠權值越小。確保邊緣細節(jié)不被模糊。,2 平滑,設計離散高斯濾波器的方法: 設定2和n,確定高斯模板權值。如2 =2和n=5:,2 平滑,整數(shù)化和歸一化后得:,2 平滑,經(jīng)過高斯濾波后的朱家角風光,通過T5鄰域平均后的朱家角風光,3 中值濾波,1)什么是中值濾波 與加權平均方式的平滑濾波不同,中值濾波用一個含有奇數(shù)點的滑動窗口,將鄰域中的像素按灰度級排序,取其中間值為輸出像素。 2)中值濾波的要素 中值濾波的效果取決于兩個要素:鄰域的空間范圍和中值計算中涉及的像素數(shù)。(當空間范圍較大時,一般只用某個稀疏矩陣做計算)。 3)中值濾波的優(yōu)點 中值濾波能夠在抑制隨機噪聲的同時不使邊緣模糊。但對于線、尖頂?shù)燃毠?jié)多的圖像不宜采用中值濾波。,3 中值濾波,例,有椒鹽噪聲的朱家角風光,用3*3的濾波窗口對上圖做二維中值濾波,4 邊緣檢測,1)什么是邊緣檢測 邊緣是指圖像中灰度發(fā)生急劇變化的區(qū)域。圖像灰度的變化可以用圖像的梯度反映。 邊緣檢測:求連續(xù)圖像f(x,y)梯度的局部最大值和方向。,$進一步閱讀:Gonzalez, p463.,4 邊緣檢測,4 邊緣檢測,梯度最大值及其方向,4 邊緣檢測,最簡單的梯度近似計算為:,4 邊緣檢測,2)梯度算子 在離散情況下常用梯度算子來檢測邊緣,給定圖像f(m,n)在兩個正交方向H1和H2上的梯度1(m,n)和2(m,n)如下: 則邊緣的強度和方向由下式給出:,4 邊緣檢測,3)常用邊緣檢測算子 Roberts算子: 其卷積模板分別是: Roberts算子特點是邊緣定位準,對噪聲敏感。,4 邊緣檢測,Prewitt算子:采用3x3模板。 Prewitt算子:平均、微分對噪聲有抑制作用。,4 邊緣檢測,Sobel算子:與Prewitt算子類似,采用了加權。 Isotropic Sobel算子: Sobel算子在實際中最常用。 Sobel Roberts Gradient Prewitt,4 邊緣檢測,4 邊緣檢測,Lenna的Sobel邊界,思考一下:產(chǎn)生出這幅圖還需要什么中間步驟?,4 邊緣檢測,Lenna的Prewitt邊界,4 邊緣檢測,Lenna的Roberts邊界,4 邊緣檢測,4)邊緣檢測算法的基本步驟 (1)濾波。邊緣檢測主要基于導數(shù)計算,但受噪聲影響。但濾波器在降低噪聲的同時也導致邊緣強度的損失。 (2)增強。增強算法將鄰域中灰度有顯著變化的點突出顯示。一般通過計算梯度幅值完成。 (3)檢測。但在有些圖像中梯度幅值較大的并不是邊緣點。最簡單的邊緣檢測是梯度幅值閾值判定。 (4)定位。精確確定邊緣的位置。,4 邊緣檢測,4 邊緣檢測,5)二階算子(拉普拉斯算子),直方圖法,梯度閾值法,二階過零點法,4 邊緣檢測,一階導數(shù)的局部最大值對應著二階導數(shù)的零交叉點(Zero crossing)。這樣通過求圖像的二階導數(shù)的零交叉點就能找到精確邊緣點。 在二維空間,對應二階導數(shù)算子有拉普拉斯算子。,4 邊緣檢測,是不依賴邊緣方向的二階微分算子,是一個標量而不是一個向量,具有旋轉(zhuǎn)不變性即各向同性的性質(zhì)。,4 邊緣檢測,用卷積模板表示為:,注意:與梯度算子的不同, 只需要一個卷積模板,4 邊緣檢測,例:在下列圖像中,判斷一階差分梯度算子和Laplacian算子的區(qū)別。圖中處表示1,其他為0。 其中一階差分梯度算子采用,4 邊緣檢測,4 邊緣檢測,A圖中對孤立的點,輸出的是一個擴大略帶模糊的點和線。 B圖和C圖中對線的端點和線,輸出的是加粗了的端點和線。 D中對階躍線,輸出的只有一條線。 對梯度運算,梯度算子的灰度保持不變。而對拉氏算子,孤立點增加4倍,端點增加3倍,線增加2倍,界線不變。 拉氏算子在實際應用中對噪聲敏感。因此在實際中通常不直接使用。(請思考二階導數(shù)的定義?),4 邊緣檢測,6)過零點檢測:Marr算子(LoG算法) (1)基本原理 A) 對有噪聲信號,先濾波 B) 再對g(x)求一階或二階導數(shù)以檢測邊緣點,4 邊緣檢測,因此下面兩步驟在數(shù)學上是等價的: 求圖像與濾波器的卷積,再求卷積的拉氏變換。 求濾波器的拉氏變換,再求與圖像的卷積。 C) 濾波器h(x)應滿足以下條件,4 邊緣檢測,4 邊緣檢測,(2)Marr邊緣檢測算法 step1:平滑濾波器采用高斯濾波器; step2:邊緣增強用二階導數(shù)(二維拉普拉斯函數(shù)); step3:邊緣檢測判據(jù)是二階導數(shù)零交叉點; step4:采用線性插值的方法估計邊緣的位置。 因為采用Laplacian算子,故有LoG(Laplacian of Gaussian)濾波器。,4 邊緣檢測,離散拉普拉斯高斯模板(5*5,delta=2),4 邊緣檢測,(3)為符合人類視覺生理,用DoG逼近,Difference of Gaussian,4 邊緣檢測,(4)Marr過零點檢測的優(yōu)缺點 過零點(Zero-crossing)的檢測所依賴的范圍與參數(shù)delta有關,但邊緣位置與delta的選擇無關,若只關心全局性的邊緣可以選取比較大的鄰域(如delta= 4 時,鄰域接近40個像素寬)來獲取明顯的邊緣。 過度平滑形狀,例如會丟失角點; 傾向產(chǎn)生環(huán)行邊緣。,為什么?請思考。,4 邊緣檢測,Marr邊緣Delta=2,4 邊緣檢測,Marr邊緣delta=4,4 邊緣檢測,7)Canny邊緣檢測最優(yōu)的階梯型邊緣檢測算法 (1)基本原理 圖像邊緣檢測必須滿足兩個條件:一能有效地抑制噪聲;二必須盡量精確確定邊緣的位置。 根據(jù)對信噪比與定位乘積進行測度,得到最優(yōu)化逼近算子。這就是Canny邊緣檢測算子。 類似與Marr(LoG)邊緣檢測方法,也屬于先平滑后求導數(shù)的方法。,(1) 弱邊緣也應該有強響應;(2) 保證良好的定位;(3)一個邊緣只有一次檢測。,4 邊緣檢測,(2)Canny邊緣檢測算法 step1:用高斯濾波器平滑圖像; step2:用一階偏導的有限差分來計算梯度的幅值和方向; step3:對梯度幅值進行非極大值抑制; step4:用雙閾值算法檢測和連接邊緣。 step1:高斯平滑函數(shù):,4 邊緣檢測,step2:一階差分卷積模板:,4 邊緣檢測,step3:非極大值抑制 僅僅得到全局的梯度并不足以確定邊緣,因此為確定邊緣,必須保留局部梯度最大的點,而抑制非極大值。(non-maxima suppression,NMS) 解決方法:利用梯度的方向。,4 邊緣檢測,四個扇區(qū)的標號為0到3,對應3*3鄰域的四種可能組合。 在每一點上,鄰域的中心像素M與沿著梯度線的兩個像素相比。如果M的梯度值不比沿梯度線的兩個相鄰像素梯度值大,則令M=0。 即:,4 邊緣檢測,step4:閾值化 減少假邊緣段數(shù)量的典型方法是對Ni,j使用一個閾值。將低于閾值的所有值賦零值。但問題是如何選取閾值? 解決方法:雙閾值算法。 在T1中收取邊緣,將T2中所有間隙連接起來。,4 邊緣檢測,Canny邊緣 Tao=2,4 邊緣檢測,Canny邊緣 Tao=4,4 邊緣檢測,邊緣檢測的小結 評價邊緣檢測器性能的測度 (1)假邊緣概率; (2)丟失邊緣概率; (3)邊緣方向角估計誤差; (4)邊緣估計值到真邊緣的距離平方均值; (5)畸變邊緣和其他諸如角點和結點的誤差范圍。,5 細化,1)什么是細化? 2)一些基本概念 3)細化的要求 4)細化算法,5 細化,1)什么是細化(thinning) 細化是一種二值圖像處理運算??梢园讯祱D像區(qū)域縮成線條,以逼近區(qū)域的中心線。 細化的目的是減少圖像成分,只留下區(qū)域最基本的信息,以便進一步分析和處理。 細化一般用于文本分析預處理階段。,5 細化,5 細化,2)基本概念 (1)近鄰 4鄰點(4-neighbors):如果兩個像素有公共邊界,則稱它們互為4鄰點。 8鄰點(8-neighbors):如果兩個像素至少共享一個頂角,則稱它們互為8鄰點。 (2)連通 一個像素與它的4鄰點是4連通(4-connected)關系; 一個像素與它的8鄰點是8連通(8-connected)關系;,5 細化,(3)路徑 從像素0到像素n的路徑是指一個像素序列,0,1,k,n,其中k與k+1像素互為鄰點。 如果鄰點關系是4連通的,則是4路徑; 如果鄰點關系是8連通的,則是8路徑; (4)前景 圖像中值為1的全部像素的集合稱為前景(foreground),用S來表示。,5 細化,5 細化,(5)連通性 已知像素 ,如果存在一條p到q的路徑,且路徑上全部像素都包含在S中,則稱p與q是連通的。 連通性具有:自反性、互換性和傳遞性。 (6)連通成分 一個像素集合,如果集合中每一個像素與其他像素連通,則稱該集合是連通成分(connected component)。 (7)簡單邊界點 S中的一個邊界點P,如果其鄰域中(不包括P點)只有一個連通成分,則P是簡單邊界點。,5 細化,判斷下圖中哪些是簡單邊界點?,5 細化,3)細化要求 (1)連通區(qū)域必須細化成連通線結構; (2)細化結果至少是8連通的; (3)保留終止線的位置; (4)細化結果應該近似于中軸線; (5)由細化引起的附加突刺應該是最小的。,5 細化,4)細化算法 在至少3x3鄰域內(nèi)檢查圖像前景中的每一個像素,迭代削去簡單邊界點,直至區(qū)域被細化成一條線。 算法描述: 對于每一個像素,如果 A) 沒有上鄰點(下鄰點、左鄰點、右鄰點); B) 不是孤立點或孤立線; C) 去除該像素點不會斷開連通區(qū)域,則刪除該像素點; D) 重復這一步驟直到?jīng)]有像素點可以去除。,有條件限制,5 細化,每次細化分4步(不去除只有一個鄰點),具體過程如下: (1)八連通下北向邊界點(n=0, p=1)可刪除條件 上式排除下面5種情況:,5 細化,(2)八連通下的南向邊界點(s=0, p=1)可刪除條件: (3)八連通下的西向邊界點(w=0, p=1)可刪除條件:,5 細化,(4)八連通下的東向邊界點(e=0, p=1)可刪除條件: 排除了下面5種情況:,要點小結,1、鄰域運算、相關、卷積、濾波等概念以及相互關系。 2、平滑問題的描述,鄰域平均和高斯濾波的解決方法。 3、中值濾波與鄰域平均和高斯濾波的區(qū)別。 4、什么是邊緣檢測及基本步驟。 5、常用邊緣檢測算子和相互間區(qū)別。,要點小結,6、邊緣檢測中的二階算子(拉普拉斯算子) 7、邊緣檢測的Marr算子:基本原理、步驟和優(yōu)缺點 8、邊緣檢測的Canny算子:基本原理、步驟和主要算法思想 9、細化的概念、原理和算法。,習題,1、一幅8*8的圖像f(i,j)其灰度值由下列函數(shù)給出,用3*3中值濾波器作用于該圖像上,求輸出圖像。注意保持邊界像素灰度不變。 0 30 60 90 120 150 180 210 30 0 30 60 90 120 150 180 60 30 0 30 60 90 120 150 90 60 30 0 30 60 90 120 120 90 60 30 0 30 60 90 150 120 90 60 30 0 30 60 180 150 120 90 60 30 0 30 210 180 150 120 90 60 30 0,習題,0 0 30 60 90 120 150 0 0 30 30 60 90 120 150 150 30 30 30 30 60 90 120 120 60 60 30 30 30 60 90 90 90 90 60 30 30 30 60 60 120 120 90 60 30 30 30 30 150 150 120 90 60 30 30 0 0 150 120 90 60 30 0 0,上機實習題,1、用MATLAB軟件產(chǎn)生一個被高斯噪聲污染的lenna圖像,使用T3、T5、高斯濾波、中值濾波進行處理,并觀察處理后圖像效果。 2、使用Sobel算子、Prewitt算子和Roberts算子進行l(wèi)enna圖像的邊緣檢測,對這幅圖像加上噪聲后重新進行邊緣檢測。觀察各算子的不同,以及邊緣是否在正確的位置。 3、在MATLAB中用edit edge命令,閱讀edge.m文件的源代碼,分析每一條語句的作用,并寫出程序流程圖。 4、用Matlab實現(xiàn)Marr邊緣檢測器,并作用于lenna圖像和lenna的噪聲圖像,比較Marr算子與Sobel算子的不同。 5、用繪圖軟件寫一個漢字(注意筆畫要粗),然后寫一個細化程序細化這個漢字。 6、實習四(必做)。作業(yè)截止日期 2010年5月14日。,