日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

中值滤波与图像锐化

發(fā)布時(shí)間:2024/7/23 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中值滤波与图像锐化 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文主要包括以下內(nèi)容

  • 中值濾波及其改進(jìn)算法
  • 圖像銳化, 包括梯度算子、拉普拉斯算子、高提升濾波和高斯-拉普拉斯變換
  • 本章的典型囊例分析
    • 對(duì)椒鹽噪聲的平滑效果比較
    • Laplacian與LoG算子的銳化效果比較

中值濾波

中值濾波本質(zhì)上是一種統(tǒng)計(jì)排序?yàn)V波器. 對(duì)于原圖像中某點(diǎn)(i,j), 中值濾波以該點(diǎn)為中
心的鄰域內(nèi)的所有像素的統(tǒng)計(jì)排序中值作為(i, j) 點(diǎn)的響應(yīng).
中值不同于均值, 是指排序隊(duì)列中位于中間位置的元素的值,例如=采用3x3 中值濾披
器, 某點(diǎn)。(i,j) 的8 個(gè)鄰域的一系列像素值為: 12, 18, 18, 11, 23, 22, 13, 25, 118,
統(tǒng)計(jì)排序結(jié)果為: 1l, 12, 13, 18, 18, 22, 23, 25, 118. 排在中間位置〈第5 位〉的18
即作為(i, j)點(diǎn)中值濾波的響應(yīng)g(i, j). 顯然, 中值濾波并非線性濾披器.

中值濾波對(duì)于某些類型的隨機(jī)噪聲具有非常理想的降噪能力, 對(duì)于線性平滑濾波而言,
在處理像縈鄰壤之內(nèi)的噪聲點(diǎn)時(shí), 噪聲的存在總會(huì)或多或少影響該點(diǎn)的像素值的計(jì)算(高斯
平滑影響的程度與噪聲點(diǎn)到中心點(diǎn)的距離成正比〉,但在中值濾被中噪聲點(diǎn)則常常直接忽略掉的:而且與線性平滑濾波器相比, 中值濾波在降噪同時(shí)引起的模糊效應(yīng)較低。中值濾波的一種典型應(yīng)用是清除椒鹽噪聲.

下面首先簡(jiǎn)單介紹一下常見的噪聲模型,接著給出中值濾波的Matlab實(shí)現(xiàn):

Matlab提供了medfilt2函數(shù)實(shí)現(xiàn)中值濾波, 原型為:
I2 = medfilt2(I1,[m,n])

參數(shù)說明
? I1是原因矩陣.
? m和n是中值濾波處理的模板大小,默認(rèn)3x3.

輸出結(jié)果
輸出I2是中值濾波后的圖像矩陣.

下面的程序分別給出了一幅受椒鹽噪聲污染的圖像經(jīng)過平均平滑、高斯平滑和中值撼潑
的處理效果.

I = imread('lena_salt.bmp'); J = imnoise(I,'salt & pepper'); w = [1,2,1;2,4,2;1,2,1]/16; J1 = imfilter(J,w,'corr','replicate');w = [1,1,1;1,1,1;1,1,1]/9; J2 = imfilter(J,w,'corr','replicate');J3 = medfilt2(J,[3,3]); figure; subplot(2,3,1); imshow(I),title('原圖像'); subplot(2,3,2); imshow(J),title('椒鹽噪聲'); subplot(2,3,4); imshow(J1),title('高斯平滑'); subplot(2,3,5); imshow(J2),title('平均平滑'); subplot(2,3,6); imshow(J3),title('中值平滑');

如圖從中可見線性平滑濾波在降噪的同時(shí)不可避免地造成了模糊,而中值濾波在有效抑制椒鹽噪聲的同時(shí)模糊效應(yīng)明顯低得多,因而對(duì)于椒鹽噪聲污染的圖像,中值濾波要遠(yuǎn)遠(yuǎn)優(yōu)于線性平滑濾波.

一種改進(jìn)的中值濾波策略
中值濾波效果依賴于濾波窗口的大小, 太大會(huì)使邊緣模糊, 太小了則去噪效果不佳。 因?yàn)樵肼朁c(diǎn)和邊緣點(diǎn)同樣是灰度變化較為劇烈的像素, 普通中值濾波在改變?cè)肼朁c(diǎn)灰度值時(shí),會(huì)一定程度地改變邊緣像素灰度值。但是噪聲點(diǎn)幾乎都是鄰域像素的極值,而邊緣往往不是,因此可以利用這個(gè)特性來限制中值濾波。

具體的改進(jìn)方法如下: 逐行掃描圖像, 當(dāng)處理每一個(gè)像素時(shí), 判斷該像素是否是濾披窗口覆蓋下鄰域像素的極大或者極小值。 如果是, 則采用正常的中值濾波處理該像素:如果不是, 則不予處理。 在實(shí)踐中這種方法能夠非常有效地去除突發(fā)噪聲點(diǎn), 尤其是椒鹽噪聲, 且?guī)缀醪挥绊戇吘墶?
由于算法可以根據(jù)局部鄰域的具體情況而自行選擇執(zhí)行不同的操作, 因此改進(jìn)的中值濾波也稱為自適應(yīng)中值濾波.

自適應(yīng)中值濾波對(duì)邊緣進(jìn)行了更好的保留。

中值濾波的工作原理
與線性平滑濾波考慮鄰域中每個(gè)像素的作用不同,中值濾波在每個(gè)n×n鄰域內(nèi)都會(huì)忽略那些相對(duì)于鄰域內(nèi)大部分像素更亮或更睛,并且所占區(qū)域小于像素總數(shù)一半(n2/2的那些像素的影響,而實(shí)際上滿足這樣條件被忽略掉的像素往往就是噪聲。

注意:作為一種非線性濾波,中值濾波有可能會(huì)改變圖像的性質(zhì),因而一般不適用于像軍事圖像處理、醫(yī)學(xué)圖像處理等領(lǐng)域.

圖像銳化

圖像銳化的目的是使模糊的圖像變得更加清晰. 其應(yīng)用廣泛, 包括從醫(yī)學(xué)成像到工業(yè)檢
測(cè)和軍事系統(tǒng)的制導(dǎo)等。

圖像銳化主要用于增強(qiáng)圖像的灰度跳變部分,這一點(diǎn)與圖像平滑對(duì)灰度跳變的抑制正好 相反,事實(shí)上從平滑與銳化的兩種運(yùn)算算子上也能說明這一點(diǎn),線性平滑都是基于對(duì)圖像鄰域的加權(quán)求和或積分運(yùn)算,而銳化則通過其逆運(yùn)算導(dǎo)數(shù)(梯度〉或有限差分來實(shí)現(xiàn)。

在討論平滑的時(shí)候曾提到噪聲和邊緣都會(huì)使圖像產(chǎn)生灰度跳變,為了在平滑時(shí)能夠?qū)⒃肼暫瓦吘墔^(qū)別對(duì)待,5.3.5節(jié)中給出了一種自適應(yīng)濾波的解決方案。同樣,在銳化處理中如何區(qū)分噪聲和邊緣仍然是我們面臨的一個(gè)課題,即在平滑處理中平滑的對(duì)象是噪聲而不涉及邊緣,在銳化中銳化的對(duì)象是邊緣而不涉及噪聲。

基于一階導(dǎo)數(shù)的圖像增強(qiáng)一一梯度算子

回憶一下高等數(shù)學(xué)中梯度的定義,對(duì)于連續(xù)2 維函數(shù).f(x, y),其在點(diǎn)(x,y)處的梯度
是下面的二維列向量:


其中,w1對(duì)接近正45 度邊緣有較強(qiáng)響應(yīng): w2 對(duì)接近負(fù)45 度邊緣有較強(qiáng)響應(yīng).

基于Robert交叉梯度的圖像銳化
通過前面學(xué)習(xí)的濾波知識(shí)可知,只要分別以w1和w2為模板,對(duì)原圖像進(jìn)行濾波就可得到GI和G2.而根據(jù)公式5-9,最終的Robert交叉梯度圖像(b)為:G = |G1| + |G2|.
在進(jìn)行銳化濾波之前,我們要將圖像類型從uint8轉(zhuǎn)換為double.因?yàn)殇J化模板計(jì)算時(shí)常常使輸出產(chǎn)生負(fù)值, 如果采用無符號(hào)的 uint8 型, 則負(fù)位會(huì)被截?cái)?#xff0e;

在調(diào)用函數(shù) imfilter 時(shí),還要注意不要使用默認(rèn)的填充方式. 因?yàn)?Matlab 默認(rèn)會(huì)在濾波時(shí)進(jìn)行 “0” 填充,這會(huì)導(dǎo)致圖像在邊界處產(chǎn)生一個(gè)人為的灰度跳變,從而在梯度圖像中產(chǎn)生高響應(yīng), 而這些人為高響應(yīng)值的存在將導(dǎo)致圖像中真正的邊緣和其他我們關(guān)心的細(xì)節(jié)的響應(yīng)在輸出梯度圖像中被壓縮在一個(gè)很窄的灰度范圍, 同時(shí)也影響顯示的效果. 我們這里采用了 ’replicate’的重復(fù)填充方式, 也可采用’symmetric’的對(duì)稱填充方式.

程序?qū)崿F(xiàn)如下:

I = imread('bacteria.BMP'); temp = I; I = double(I); w1 = [-1 0; 0 1]; w2 = [0 -1;1 0];G1 = imfilter(I,w1,'corr','replicate'); G2 = imfilter(I,w2,'corr','replicate'); G = abs(G1)+abs(G2); figure; subplot(2,2,1); imshow(temp),title('原圖像'); subplot(2,2,2); imshow(abs(G1),[]),title('w1濾波'); subplot(2,2,3); imshow(abs(G2),[]),title('w2濾波'); subplot(2,2,4); imshow(G,[]),title('Robert梯度');

如圖可知,w1模板對(duì)正45度左右顯示較好,w2模板對(duì)-45度左右顯示較好。
注意,為便于觀察效果,做了顯示時(shí)的重新標(biāo)定, 即將圖像的灰度范圍線性變換到 0-255 之內(nèi), 并使圖像的最小灰度值為 0,最大灰度值為255.
imshow(K,[])顯示K,并將K的最大值和最小值分別作為純白(255)和純黑(0),中間的K值映射為0到255之間的標(biāo)準(zhǔn)灰度值。

Sobel梯度

由于濾波時(shí)我們總是喜歡奇數(shù)尺寸的模板, 因而一種計(jì)算Sobel 梯度的Sobel 模板更加常用:

下面的Matlab 程序計(jì)算了一幅圖像的豎直和水平梯度, 它們的和可以作為完整的Sobel梯度。

I = imread('bacteria.BMP'); w1 = fspecial('sobel'); w2 = w1'; G1 = imfilter(I,w1); G2 = imfilter(I,w2); G = abs(G1)+abs(G2); figure; subplot(2,2,1); imshow(I),title('原圖像'); subplot(2,2,2); imshow(G1,[]),title('水平sobel'); subplot(2,2,3); imshow(G2,[]),title('豎直sobel'); subplot(2,2,4); imshow(G,[]),title('sobel');

基于二階微分的圖像增強(qiáng)拉普拉斯算子

下面介紹一種對(duì)于圖像銳化而言應(yīng)用更為廣泛的基于二階微分的拉普拉斯(Laplacian)算子.

分析拉普拉斯模板的結(jié)構(gòu),可知這種模板對(duì)于90度的旋轉(zhuǎn)是各向同性的。所謂對(duì)于某角
度各向同性是指把原圖像旋轉(zhuǎn)該角度后再進(jìn)行濾波與先對(duì)原圖像濾波再旋轉(zhuǎn)該角度的結(jié)果相
同。這說明拉普拉斯算子對(duì)于接近水平和接近堅(jiān)直方向的邊緣都有很好的增強(qiáng),從而也就避
免我們?cè)谑褂锰荻人阕訒r(shí)要進(jìn)行兩次濾波的麻煩。更進(jìn)一步,我們還可以得到如下對(duì)于45°
旋轉(zhuǎn)各向同性的濾波器:

分別使用上述3種拉普拉斯濾波的Matlab濾波程序如下

I = imread('bacteria.BMP'); temp = I; I = double(I); w1 = [0 -1 0;-1 4 -1;0 -1 0]; L1 = imfilter(I,w1,'corr','replicate'); w2 = [-1 -1 -1;-1 8 -1 ;-1 -1 -1]; L2 = imfilter(I,w2,'corr','replicate'); w3 = [1 4 1;4 -20 4;1 4 1]; L3 = imfilter(I,w3,'corr','replicate'); figure; subplot(2,2,1); imshow(temp),title('原圖像'); subplot(2,2,2); imshow(abs(L1),[]); subplot(2,2,3); imshow(abs(L2),[]); subplot(2,2,4); imshow(abs(L3),[]);

上述程序運(yùn)行結(jié)果如圖5.9 所示.對(duì)于細(xì)菌圖像,拉普拉斯銳化效果與之前Robert 與
Sobel梯度銳化明顯不同的一點(diǎn)是輸出圖像中的雙邊緣。此外,我們還注意到拉普拉斯銳化似乎
對(duì)一些離散點(diǎn)有較強(qiáng)的響應(yīng),當(dāng)然由于噪聲也是離散點(diǎn),因此這個(gè)性質(zhì)有時(shí)是我們所不希望的.

基于一階與二階導(dǎo)數(shù)的銳化算子的比較

設(shè)圖5.10最上面部分的灰度剖面圖對(duì)應(yīng)于圖像中的一條具有代表性的水平像素線,其中
包括了灰度較緩變化的斜坡〈軟邊緣〉、孤立點(diǎn)〈很可能為噪聲〉、細(xì)線〈細(xì)節(jié)〉, 以及灰度跳
變的階梯(硬邊緣〉。簡(jiǎn)單起見, 只考慮圖像中8個(gè)灰度級(jí)的情況. 圖5.10 中給出了這條像
素線中各個(gè)像素的灰度值, 由此計(jì)算出的一階微分和二階微分在圖中的第三行和第四行中給
出. 由于這里的像素線在圖像中是水平分布的, 因此式5-9和式5-10可簡(jiǎn)化為一維的形式,
即一維情況下的一階微分:

通過分析這個(gè)典型的灰度變化模型, 我們就可以很好地比較噪聲點(diǎn)、細(xì)節(jié)以及邊緣的一
階和二階微分結(jié)果.
首先注意到沿著整個(gè)斜坡(軟邊緣), 一階微分都具有非0響應(yīng), 并且當(dāng)這種斜坡的灰
度過渡近似線時(shí), 對(duì)應(yīng)于變化率的一階微分的響應(yīng)為恒定值〈這里為-1):而二階微分的非0
響應(yīng)則只出現(xiàn)在斜坡的起始和終點(diǎn)處, 在灰度變化率恒定的斜面上二階微分值為0, 這就是
圖5.9中的拉普拉斯銳化圖像細(xì)菌周圍出現(xiàn)雙邊緣的原因. 由此得出結(jié)論, 對(duì)于圖像中的軟
邊緣, 一階微分通常產(chǎn)生較粗的邊緣, 而二階微分則細(xì)得多.
再來看孤立噪聲點(diǎn), 我們注意到二階微分對(duì)噪聲點(diǎn)的響應(yīng)較一階微分要強(qiáng)很多, 這也就
是圖5.9中的拉曾拉斯銳化圖像中出現(xiàn)一些零星的高響應(yīng)的原因, 當(dāng)然二階微分的這一性質(zhì)
是我們所不希望的.
細(xì)線常常對(duì)應(yīng)于圖像中的細(xì)節(jié), 二階微分對(duì)細(xì)線的較強(qiáng)響應(yīng)說明了二階微分對(duì)于細(xì)節(jié)增
強(qiáng)的優(yōu)越性.
最后, 一、二階微分對(duì)灰度階梯有著相同的響應(yīng), 只是在二階微分中有一個(gè)從正到負(fù)的
過攘, 這一性質(zhì)將在第9.1在 “ 邊緣檢測(cè)與圖像分割” 中用于邊緣檢測(cè).

我們將這些比較的結(jié)論總結(jié)如下:

  • 一階導(dǎo)數(shù)通常會(huì)產(chǎn)生較寬的邊緣.
  • 二階導(dǎo)數(shù)對(duì)于階躍性邊緣中心產(chǎn)生零交叉,而對(duì)于屋頂狀邊緣(細(xì)線),二階導(dǎo)數(shù)取極值.
  • 二階導(dǎo)數(shù)對(duì)細(xì)節(jié)有較強(qiáng)的響應(yīng), 如細(xì)線和孤立噪聲點(diǎn)

對(duì)圖像增強(qiáng)而言,基于二階導(dǎo)數(shù)的算子應(yīng)用更廣泛,因?yàn)樗鼘?duì)細(xì)節(jié)響應(yīng)更強(qiáng),增強(qiáng)效果也就更明顯。而在本書第9章討論邊緣檢測(cè)的時(shí)候,基于一階導(dǎo)數(shù)的算子則會(huì)發(fā)揮更多的作用。盡管如此,一階算子在圖像增強(qiáng)中依然不可或缺,它們常常同二階算子結(jié)合在一起古以達(dá)到更好的銳化增強(qiáng)效果。

5.5節(jié)的最后我們提到了平滑濾波器又可以稱為低通濾波器,相應(yīng)的,上面介紹的幾種銳化濾波器也可以稱為高通濾波器,得名的具體原因?qū)⒃谙乱徽隆邦l域?yàn)V波”中說明.

高提升濾波及其實(shí)現(xiàn)

無論是基于一階微分的Robert、Sobel模板還是基于二階微分的拉普拉斯模板,其中各系數(shù)和均為0。這說明算子在灰度恒定區(qū)域的響應(yīng)為0, 即在銳化處理后的圖像中,原圖像的平滑區(qū)域近乎于黑色,而原圖中所有的邊緣、細(xì)節(jié)和灰度跳變點(diǎn)都作為黑背景中的高灰度部分突出顯示.
在基于銳化的圖像增強(qiáng)中,我們常常希望在增強(qiáng)邊緣和細(xì)節(jié)的同時(shí)仍然保留原圖像中的信息,而不是將平滑區(qū)域的灰度信息丟失。因此可以把原圖像加上銳化后的圖像以得到比較理想的結(jié)果。


形如式5-14這樣的濾波處理就稱為高提升濾波.
一般來說,權(quán)重系數(shù)A應(yīng)為一個(gè)大于等于1的實(shí)數(shù),A越大原圖像所占比重越大,銳化效果越不明顯。相對(duì)于A=1的情況,當(dāng)A分別
為1.8和3時(shí),圖中細(xì)節(jié)得到了有效增強(qiáng),對(duì)比度也有了一定的改善。

實(shí)現(xiàn)
高提升譴披可由以下3個(gè)步驟完成:
(1)圖像銳化。
(2)原圖像與銳化圖像的按比例混合.
(3)混合后的灰度調(diào)整〈歸一化至[0,255]。
在實(shí)現(xiàn)中應(yīng)注意, 高提升施加才銳化圖像的響應(yīng)是正還是負(fù)非常敏感。以拉普拉斯模板為例,當(dāng)模板中心系數(shù)為正時(shí),對(duì)于鄰域中的相對(duì)高灰度值像素,其濾波響應(yīng)為正值,疊加 到原圖像中將使輸出比原來更亮:而對(duì)于鄰壤中的相對(duì)暗點(diǎn),其濾波響應(yīng)顯然為負(fù)值,疊加到原圖像中則使該點(diǎn)在輸出圖像中更暗。當(dāng)模板中心系數(shù)為負(fù)時(shí),由于原圖像與濾波響應(yīng)圖 像之間變成了相減的關(guān)系,高提升的效果與正中心系數(shù)的模板完全相同.這樣就達(dá)到了亮者愈亮,暗者愈暗的增強(qiáng)效果。

高斯·拉普拉斯交換

銳化在增強(qiáng)邊緣和細(xì)節(jié)的同時(shí)往往也增強(qiáng)了噪聲, 因此如何區(qū)分開噪聲和邊緣是銳化過程中要解決的一個(gè)核心問題。
基于二階微分的拉普拉斯算子對(duì)于細(xì)節(jié)〈細(xì)線和孤立點(diǎn)〉能產(chǎn)生更強(qiáng)的相應(yīng), 并且各
向同性, 因此在圖像增強(qiáng)中較一階的梯度算子更受到我們的青睞。然而, 它對(duì)于噪聲點(diǎn)的
響應(yīng)也更強(qiáng), 我們看到圖像baby_noise.bmp經(jīng)拉普拉斯銳化后噪聲更明顯。
為了在取得更好銳化效果的同時(shí)把噪聲干擾降到最低, 可以先對(duì)帶有噪聲的原始圖像進(jìn)圖像進(jìn)行平滑濾波, 再進(jìn)行銳化增強(qiáng)邊緣和細(xì)節(jié). 本著“強(qiáng)強(qiáng)聯(lián)合” 的原則, 將在平滑領(lǐng)域工作得更好的高斯平滑算子同鏡化界表現(xiàn)突出的拉普拉斯銳化結(jié)合起來, 得到高斯一拉普拉斯算子(Marr和Hildh也提出)。

Laplacian與LoG算子的銳化效果比較

I = imread('baby.bmp'); Id = double(I); h_lap = [ -1 -1 -1;-1 8 -1;-1 -1 -1]; I_lap = imfilter(Id,h_lap,'corr','replicate');h_log = fspecial('log',5,0.5); I_log = imfilter(Id,h_log,'corr','replicate'); h_log2 = fspecial('log',5,2); I_log2 = imfilter(Id,h_log2,'corr','replicate');figure; subplot(2,2,1); imshow(I),title('原圖'); subplot(2,2,2); imshow(uint8(abs(I_lap)),[]),title('laplacian');subplot(2,2,3); imshow(uint8(abs(I_log)),[]),title('LoG'); subplot(2,2,4); imshow(uint8(abs(I_log2)),[]),title('LoG2');

上述程序的運(yùn)行結(jié)果如圖所示,分別給出了對(duì)于圖像baby.bmp,當(dāng)σ=0.5和σ=2時(shí)的LoG增強(qiáng)效果。與laplacian相比, 噪聲得到了有效的抑制,且σ越小細(xì)節(jié)增強(qiáng)效果更好, σ 越大則平滑效果越好.

總結(jié)

以上是生活随笔為你收集整理的中值滤波与图像锐化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。