基於MATLAB圖像處理的中值濾波、均值濾波以及高斯濾波的實現與對比

2021-01-14 FPGA開源工作室

基於MATLAB圖像處理的中值濾波、均值濾波以及高斯濾波的實現與對比

作者:lee神

1.  背景知識

中值濾波法是一種非線性平滑技術,它將每一像素點的灰度值設置為該點某鄰域窗口內的所有像素點灰度值的中值.

中值濾波是基於排序統計理論的一種能有效抑制噪聲的非線性信號處理技術,中值濾波的基本原理是把數字圖像或數字序列中一點的值用該點的一個鄰域中各點值的中值代替,讓周圍的像素值接近的真實值,從而消除孤立的噪聲點。

方法是用某種結構的二維滑動模板,將板內像素按照像素值的大小進行排序,生成單調上升(或下降)的為二維數據序列。二維中值濾波輸出為g(x,y)=med{f(x-k,y-l),(k,l∈W)} ,其中,f(x,y),g(x,y)分別為原始圖像和處理後圖像。W為二維模板,通常為3*3,5*5區域,也可以是不同的的形狀,如線狀,圓形,十字形,圓環形等。

g(x,y)=med{f(x-k,y-l),(k,l∈W)}

g =med[2,4,8;1,3,9;5,7,6] = 5

中值濾波後的結果:

均值濾波是典型的線性濾波算法,它是指在圖像上對目標像素給一個模板,該模板包括了其周圍的臨近像素(以目標像素為中心的周圍8個像素,構成一個濾波模板,即去掉目標像素本身),再用模板中的全體像素的平均值來代替原來像素值。

均值濾波也稱為線性濾波,其採用的主要方法為鄰域平均法。線性濾波的基本原理是用均值代替原圖像中的各個像素值,即對待處理的當前像素點(x,y),選擇一個模板,該模板由其近鄰的若干像素組成,求模板中所有像素的均值,再把該均值賦予當前像素點(x,y),作為處理後圖像在該點上的灰度g(x,y),即g(x,y)=1/m ∑f(x,y) m為該模板中包含當前像素在內的像素總個數。

均值濾波本身存在著固有的缺陷,即它不能很好地保護圖像細節,在圖像去噪的同時也破壞了圖像的細節部分,從而使圖像變得模糊,不能很好地去除噪聲點。

g(x,y)=1/m ∑f(x,y)

g = (1/8)*(2+4+8+1+9+5+7+6)= 5

均值濾波後的結果:

 

高斯濾波是一種線性平滑濾波,適用於消除高斯噪聲,廣泛應用於圖像處理的減噪過程。通俗的講,高斯濾波就是對整幅圖像進行加權平均的過程,每一個像素點的值,都由其本身和鄰域內的其他像素值經過加權平均後得到。高斯濾波的具體操作是:用一個模板(或稱卷積、掩模)掃描圖像中的每一個像素,用模板確定的鄰域內像素的加權平均灰度值去替代模板中心像素點的值。

2.  MATLAB實現

源碼:

%%-

%% 2018/01/03

%% lee

%% 137194782@qq.com

%% 微信公眾號:FPGA開源工作室

%%--

clear all;

clc;

M = imread('timg.jpg');         %讀取MATLAB中的名為timg的圖像   

figure,imshow(M);                %顯示原始圖像

title('original');

gray = rgb2gray(M);

figure,imshow(gray);                         %顯示灰度圖像

title('gray');

P1 = imnoise(gray,'gaussian',0.02);     %加入高斯躁聲 

figure,imshow(P1);                        %加入高斯躁聲後顯示圖像

title('gaussiannoise');

P2 = imnoise(gray,'salt& pepper',0.02); %加入椒鹽躁聲

figure,imshow(P2);                        %加入椒鹽躁聲後顯示圖像  

title('salt& pepper noise');

g = medfilt2(P1);                       %對高斯躁聲中值濾波

figure,imshow(g);

title('medfiltergaussian');

h = medfilt2(P2);                       %對椒鹽躁聲中值濾波

figure,imshow(h);

title('medfiltersalt & pepper noise');

a=[1 1 1                               %對高斯躁聲算術均值濾波

   1 11

   1 11];

l=1/9*a;                          

k = conv2(double(P1),double(l));                        

figure,imshow(k,[]);

title('arithmeticfiltergaussian');                                          

d = conv2(double(P2),double(l));           %對椒鹽躁聲算術均值濾波              

figure,imshow(d,[]);

title('arithmeticfiltersalt & pepper noise');

sigma=8;%標準差大小  

window=double(uint8(3*sigma)*2+1);%窗口大小一半為3*sigma  

H=fspecial('gaussian',window, sigma);%fspecial('gaussian',hsize, sigma)產生濾波模板   

img_gauss=imfilter(P1,H,'replicate'); %為了不出現黑邊,使用參數'replicate'(輸入圖像的外部邊界通過複製內部邊界的值來擴展)  

figure, imshow(img_gauss);

title('gaussianfilting gauss noise');

img_salt=imfilter(P2,H,'replicate'); 

figure, imshow(img_salt);

title('gaussianfilting salt pepper noise');

 

結果展示:


原始圖像


灰度圖像


加入高斯噪聲的灰度圖像


加入椒鹽噪聲的灰度圖像


經過中值濾波後的高斯噪聲灰度圖像


經過中值濾波後的椒鹽噪聲灰度圖像


經過均值濾波的高斯噪聲灰度圖像


經過均值濾波的椒鹽噪聲灰度圖像


經過高斯濾波的高斯噪聲灰度圖像

經過高斯濾波的椒鹽噪聲的灰度圖像

結果分析:圖像經過中值濾波後,高斯噪聲沒有被完全去除,椒鹽噪聲幾乎被完全去除效果較好。經過均值濾波後不管是高斯噪聲還是椒鹽噪聲大部分都沒有被去除,只是稍微模糊化。經過高斯濾波後,高斯噪聲和椒鹽噪聲幾乎被很大程度的模糊化,原圖好像被加上了一層蒙版。


歡迎大家關注我的微信公眾號FPGA開源工作室和資源共享QQ群。(*  ̄3)(ε ̄ *)






 

  



相關焦點

  • 使用Matlab圖像處理(三)——圖像濾波原理
    首先我們介紹最著名的噪聲——高斯噪聲:無論是做什麼的小夥伴,或多或少都會聽說過高斯噪聲。小白不想把複雜的數學公式拿上進行講解,大家可以簡單記成這種噪聲符合正態分布就可以啦,我們用「影響圖像處理最深遠的人」的相片來直觀的展現一下高斯噪聲的樣子。
  • 基於MATLAB的中值濾波算法實現
    在實時圖像採集中,不可避免的會引入噪聲,尤其是幹擾噪聲和椒鹽噪聲,噪聲的存在嚴重影響邊緣檢測的效果,中值濾波是一種基於排序統計理論的非線性平滑計數
  • 維納濾波原理及其matlab實現
    濾波技術是信號分析、處理技術的重要分支,無論是信號的獲取、傳輸,還是信號的處理和交換都離不開濾波技術,
  • 【數字圖像處理系列五】圖像濾波之空間濾波:圖像平滑降噪和圖像銳化
    【數字圖像處理系列四】在圖像增強:線性、 分段線性、 對數、 反對數、 冪律(伽馬)變換、直方圖均衡【數字圖像處理系列三】一文中我們從圖像灰度變換的角度闡述了圖像增強的各種方式,本文我們將一起學習圖像處理中重點的方式:圖像濾波,圖像濾波分為空間域濾波和頻率域濾波,頻率域濾波我們將在下一節重點說明。
  • opencv-python圖像預處理-濾波
    為了消除外界環境對圖像採集的幹擾,增強圖像的邊緣及灰度跳變的部分,使圖像變得清晰以及提高圖像處理速度需要對圖像進行預處理操作,主要是對圖像進行濾波和增強操作。使用的方法可以分為空間域處理和頻率域處理兩類。空間域指圖像平面本身,這類圖像處理方法用各種模板直接與圖像進行卷積運算,實現對圖像的處理。
  • MATLAB中的圖像變換之線性空間濾波
    凡是使用空間模板進行的圖像處理,我們就定義為空間濾波,模板本身被稱為空間濾波器。圖像的空域線性濾波和非線性濾波在空域對圖像進行濾波處理無非兩種情況:線性濾波和非線性濾波。濾波的意思就是對原圖像的每個像素周圍一定範圍內的像素進行運算,運算的範圍就稱為掩膜或領域。
  • Matlab圖像處理(四)——常用濾波的實現
    2 [height, width]=size(A_salt_pepper);   %輸入圖像是p×q的,且p>n,q>n   3 A_salt_pepper2=zeros(height+n-1,width+n-1); %存放延拓後的圖片 4 for i=1+(n-1)/2:1+(n-1)/2+height-1 5     for j=1+(n
  • 圖像與濾波
    前幾天讀到一篇文章,它提到圖像其實是一種波,可以用波的算法處理圖像。我頓時有一種醍醐灌頂的感覺,從沒想到這兩個領域是相關的,圖像還可以這樣玩!下面我就來詳細介紹這篇文章。一、為什麼圖像是波?我們知道,圖像由像素組成。
  • 【乾貨】遙感圖像處理之空間域增強&卷積濾波&形態學濾波
    空間域增強處理是通過直接改變圖像中的單個像元及相鄰像元的灰度值來增強圖像。
  • 圖像各向異性濾波
    對圖像來說各向異性就是在每個像素點周圍四個方向上梯度變化都不一樣,濾波的時候我們要考慮圖像的各向異性對圖像的影響,而各向同性顯然是說各個方向的值都一致,常見的圖像均值或者高斯均值濾波可以看成是各向同性濾波。
  • 卡爾曼與卡爾曼濾波
    卡爾曼濾波的一個典型實例是從一組有限的,包含噪聲的,對物體位置的觀察序列(可能有偏差)預測出物體的位置的坐標及速度。在很多工程應用(如雷達、計算機視覺)中都可以找到它的身影。同時,卡爾曼濾波也是控制理論以及控制系統工程中的一個重要課題。
  • 卡爾曼濾波是怎麼回事?
    Kalman Filter 的巨大成功歸功於其小的計算需求,優雅的遞歸屬性以及作為具有高斯誤差統計的一維線性系統的最優估計器的狀態。Kalman Filter 只能減小均值為0的測量噪聲帶來的影響。只要噪聲期望為0,那麼不管方差多大,只要迭代次數足夠多,那效果都很好。反之,噪聲期望不為0,那麼估計值就還是與實際值有偏差[3]。卡爾曼濾波到底是如何解決實際問題的呢?
  • 詳解卡爾曼濾波原理
    在連續變化的系統中使用卡爾曼濾波是非常理想的,它具有佔用內存小的優點(除了前一個狀態量外,不需要保留其它歷史數據),並且速度很快,很適合應用於實時問題和嵌入式系統。 在Google上找到的大多數關於實現卡爾曼濾波的數學公式看起來有點晦澀難懂,這個狀況有點糟糕。
  • MATLAB中的非線性空間濾波基礎
    IPT中常用於生成非線性空間濾波的一個工具是函數ordfilt2,它可以生成統計排序( order-statistic )濾波器(也稱為排序濾波器,rank filter )。它們都是非線性空間濾波器,其響應基於對圖像鄰域中所包含的像素進行排序,然後使用排序結果確定的值來替代鄰域中的中心像素的值。
  • 深度解讀:卡爾曼濾波原理
    在連續變化的系統中使用卡爾曼濾波是非常理想的,它具有佔用內存小的優點(除了前一個狀態量外,不需要保留其它歷史數據),並且速度很快,很適合應用於實時問題和嵌入式系統。在Google上找到的大多數關於實現卡爾曼濾波的數學公式看起來有點晦澀難懂,這個狀況有點糟糕。
  • Matlab數字圖像處理初步
    均值濾波 最簡單也最直接的二維圖像高斯噪聲的去噪方法即為均值濾波方法,對應的MATLAB函數為imfilter。對稱邊界條件,濾波時不改變圖像大小(對應’same』,否則為』full』) 恢復結果的衡量-峰值信噪比(PSNR) 除了直接通過肉眼觀察圖像質量外,基於圖像函數誤差定義的峰值信噪比,可以對圖像的恢復質量進行數值上的分析。
  • 【深度】基於多解析度高斯濾波器組的 時頻分析方法
    本篇節選自論文《基於多解析度高斯濾波器組的時頻分析方法》,發表於《中國電子科學研究院學報》第12卷第6期。摘 要:綜合人耳聽覺模型及小波變換多解析度特性進行電氣設備異響信號特徵分析,提出了一種符合變壓器運行聲音信號功率譜特徵的多解析度高斯濾波器組時頻分析方法。
  • 自適應濾波算法理解與應用
    什麼是自適應濾波器   自適應濾波器是能夠根據輸入信號自動調整性能進行數位訊號處理的數字濾波器。作為對比,非自適應濾波器有靜態的濾波器係數,這些靜態係數一起組成傳遞函數。價值函數是濾波器最佳性能的判斷準則,比如減小輸入信號中的噪聲成分的能力。   隨著數位訊號處理器性能的增強,自適應濾波器的應用越來越常見,時至今日它們已經廣泛地用於手機以及其它通信設備、數碼錄像機和數位照相機以及醫療監測設備中。
  • 卡爾曼濾波,如此強大的工具,你值得弄懂!
    在連續變化的系統中使用卡爾曼濾波是非常理想的,它具有佔用內存小的優點(除了前一個狀態量外,不需要保留其它歷史數據),並且速度很快,很適合應用於實時問題和嵌入式系統。在Google上找到的大多數關於實現卡爾曼濾波的數學公式看起來有點晦澀難懂,這個狀況有點糟糕。
  • 基於中值的圖像椒鹽噪聲的非迭代濾除
    現實中由於照相機的性能和光線強弱的變化,噪聲在圖像中不可避免。去除噪聲的方法大致分為兩類:線性方法和非線性方法。線性濾波和含噪圖像的卷積能有效地去除高斯噪聲以及其他呈均勻分布的噪聲,但由於這種方法把邊界處灰度變化較大位置的點也當作椒鹽噪聲處理,因此他對這樣的噪聲效果甚微,並且還經常對圖像造成模糊。