MATLAB應(yīng)用在基于噪聲檢測的圖像均值去噪法
引言
圖像是用各種觀測系統(tǒng)以不同形式和手段觀測客觀世界而獲得的,可以直接或間接作用于人眼并進(jìn)而產(chǎn)生視知覺的實(shí)體,是人類感知世界的視覺基礎(chǔ),是人類獲取信息、表達(dá)信息和傳遞信息的重要手段。研究表明,人類獲取的視覺圖像信息在人類接受的信息中的比重達(dá)到75%,“百聞不如一見”便是非常形象的例子之一。在高度信息化條件下的今天,數(shù)字圖像越來越得到普及和應(yīng)用。
然而,人們在獲取和傳輸數(shù)字圖像的同時(shí),難免于圖像數(shù)據(jù)被外界噪聲所污染,妨礙了人們對圖像信息的理解。由此,圖像去噪技術(shù)應(yīng)運(yùn)而生。圖像去噪,即在盡可能地不損失原圖像細(xì)節(jié)的前提下,去除圖像中無關(guān)的噪點(diǎn)。現(xiàn)有的圖像去噪方法[11很多,如:
1 均值濾渡器
均值濾波器是一種典型的線性去噪方法,因?yàn)槠溥\(yùn)算簡單快速,同時(shí)又能夠較為有效地去除高斯噪聲。因而適用面較廣。
許多濾除噪聲方法都是在此基礎(chǔ)上發(fā)展而來的。其缺點(diǎn)是嚴(yán)重破壞了圖像的邊緣,模糊了圖像。
2 低通濾波器
低通濾波器,信號或圖像的能量大部分集中在幅度譜的低頻和中頻段是很常見的;而在較高頻段,感興趣的信息常被噪聲所淹沒。因此。一個(gè)能降低高頻成分幅度的濾波器就能減弱噪聲的看的見的影響。這是一種頻域處理法。在分析圖像信號的頻率特性時(shí),一幅圖像的邊緣、跳躍部分以及顆粒噪聲代表圖像信號的高頻分量,而大面積的背景區(qū)則代表低頻分量。用濾渡的方法濾除其高頻部分就能去掉噪聲,使圖像得到平滑。但同時(shí),有用的高頻成分也濾除了。因此這種處理是以犧牲清晰度為代價(jià)的。
3 中值濾波器
中值濾波器是一種消除噪聲的非線性處理方法,它是由Tueky在1971年提出的。它的基本原理是把數(shù)字圖像或數(shù)字序列中一點(diǎn)的值用該點(diǎn)的一個(gè)鄰近各點(diǎn)值的中值代替。中值定義如下:對一個(gè)數(shù)字序列的元素進(jìn)行排序,如果元素個(gè)數(shù)為奇數(shù),則取排序后序列的中間值。如果序列元素個(gè)數(shù)為偶數(shù),則取排序后序列的中間兩個(gè)值的均值。
把一個(gè)點(diǎn)的特定長度或形狀的領(lǐng)域稱作窗口。在一維情況下,中值濾波器是一個(gè)含有奇數(shù)個(gè)像素的滑動(dòng)窗口。窗口正中問那個(gè)像素的值用窗口內(nèi)各像素值的中值代替。
該濾波器是一種典型的非線性處理方法。它的優(yōu)勢在對圖像中脈沖噪聲消除極為有效,且能夠較好地保護(hù)圖像邊緣信息。
弱點(diǎn)是因?yàn)樯婕按罅颗判蜻\(yùn)算,運(yùn)算速度較慢,對圖像的實(shí)時(shí)處理有影響。圖像一般要傳化成數(shù)字圖像后才可以使用計(jì)算機(jī)對其進(jìn)行各種處理。數(shù)字圖像,是以數(shù)字的形式而存在的。利用MATLAB(矩陣實(shí)驗(yàn)室)進(jìn)行處理時(shí),我們簡單地理解它為一定大小的數(shù)字矩陣。矩陣中的每個(gè)效字代表圖像的一個(gè)像索點(diǎn)。由此可以知道,對數(shù)字圖像的處理,實(shí)際上就是對一個(gè)數(shù)字矩陣的運(yùn)算處理。
為了研究方便,我們的方法是人工的給原圖像添加噪聲·主要是不同強(qiáng)度的正態(tài)分布隨機(jī)噪聲和脈沖噪聲。在MATLAB中,正態(tài)分布噪聲是由randn函數(shù)實(shí)現(xiàn)的,而脈沖噪聲,即平常所說的椒鹽噪聲,是由imnoise(Io,’saIt 8L pepper,i)實(shí)現(xiàn)的。其中Io是原圖像矩陣,i取值。至1之間,表示噪聲的強(qiáng)度。
通過研究,發(fā)現(xiàn)一種新的改進(jìn)的均值濾波器[2]。在考慮如何對圖像的噪聲進(jìn)行處理時(shí),難以避免的,需要面臨噪聲點(diǎn)的檢測問題。因?yàn)橐粡埡雸D像中,只有一部分的像素受到了噪聲的污染,而其余的像素仍保持原值。無條件地對所有的像素點(diǎn)進(jìn)行濾波,顯然在去除噪點(diǎn)的同時(shí),使原圖像發(fā)生了失真。所以為了更有針對性地處理圖像中的躁點(diǎn),最好的做法就是先對噪聲進(jìn)行檢測。然后利用非噪聲點(diǎn)的平均值來代替每個(gè)像素的灰度,而不是上面?zhèn)鹘y(tǒng)方法中的盲目運(yùn)算。其下面通過實(shí)例來驗(yàn)證這種方法的優(yōu)越性:
采用尺寸大小為162×120的圖像文件shoes.jpg。使用im-眥d函數(shù)將其載人到MATLAB中,為了簡便。我們先用瑁b29ray函數(shù)將其轉(zhuǎn)換為單維的灰度圖像,灰度范圍[o,255]
?。ㄒ妶D1)。在原圖基礎(chǔ)上加入噪聲密度為o.2的脈沖噪聲,可以用imnoise函數(shù)加入椒鹽噪聲,也可以用randn加入正態(tài)分布的隨機(jī)噪聲,這樣就得到了含噪的圖像。芝麻鹽狀的雪*點(diǎn)隨機(jī)地分布在圖像矩陣巾(見圖2)。
一般來說,圖像中像素的灰度值是連續(xù)漸變的。
而如果存在噪點(diǎn),那么在原圖像素和噪點(diǎn)之間的灰度值會(huì)發(fā)生突然的變化?;诖?,首先取待檢測點(diǎn)的上、下、左、右四個(gè)鄰域大小為3×3,計(jì)算各鄰域的平均值,如果四個(gè)鄰域的均值都與待檢測點(diǎn)的差的絕對值大于既定的閾值,則判斷該點(diǎn)為噪點(diǎn),反之,有一個(gè)鄰域的均值與待測點(diǎn)的差小于閾值。則判斷該點(diǎn)為正常像素點(diǎn)。其中;闋值是我們根據(jù)圖像的含噪情況人為設(shè)定的一個(gè)值,一般在100和200之問。同時(shí)。建立與待檢測圖像大小相同的矩陣,稱為噪聲標(biāo)識矩陣。其中的點(diǎn)與原圖像矩陣中的點(diǎn)一一對應(yīng)。并預(yù)設(shè)該矩陣中的值全為1,如果一像素被判斷為噪聲,則置標(biāo)識矩陣中相應(yīng)元素為o.這樣,就可以實(shí)現(xiàn)前面判斷過程所得出的結(jié)果被后續(xù)的檢測所使用,已經(jīng)被判定為噪聲的像素不再參與領(lǐng)域均值的計(jì)算。
這樣,我們就可以用一個(gè)循環(huán),來對圖像矩陣中的每個(gè)像素逐個(gè)進(jìn)行判斷,方便地檢測到了噪聲點(diǎn)。
接下來,就可以利用中值濾波的方法,去除圖像中的噪點(diǎn)了,將預(yù)先判斷為噪點(diǎn)的圖像矩陣中的點(diǎn),如(a。b)=(70.S5)的點(diǎn)的值是230,與鄰域點(diǎn)的均值的差大于兩值150。因此翔斷它是一個(gè)噪點(diǎn)。這樣,我們就用它鄰域內(nèi)的八個(gè)點(diǎn)中有效的點(diǎn)來取均值代入。依次執(zhí)行,挨個(gè)計(jì)算、代人。這樣就得到了一個(gè)新的圖像數(shù)據(jù)矩陣,最后我們用i眥Ilow函數(shù)顯示處理后的圖像(見圖3)??梢钥吹健PЧ浅C黠@。
4 結(jié)語
去噪后的圖像不僅噪聲強(qiáng)度受到限制,而且圖像細(xì)節(jié)得到了最大限度的保持,解決了妨礙人們獲取圖像信息的同胚。在航空航天、通信工程、生物醫(yī)學(xué)、軍事公安、文化藝術(shù)等領(lǐng)域都具有一定意義。