中值濾波原理
中值濾波本質上是一種統計排序濾波器。對於原圖像中某點(i,j),中值濾波以該點為中心的鄰域內的所有像素的統計排序中值作為(i,j)點的響應。
中值不同於均值,是指排序隊列中位於中間位置的元素的值,例如,采用3x3中值濾波器,某點(i,j)的8個鄰域的一系列像素值為12,18,25,11、118,17、35,29,23,統計排序結果為11、12,17,18,23,25,29,35,118。排在中間位置(第5位)的23即作為(i,j)點中值濾波的響應g(i,j)。顯然,中值濾波並非線性濾波器。
原理圖解:選定圖像中的某個像素,采用3*3的濾波窗口進行濾波,將周圍的8個像素連同選定的像素進行排序,然后選擇排好序的中心像素值代替原來的像素值。即將圖中的23代替原來的118。
圖中可以知道,當像素點太大或者太小時都不同意被選中,所以中值濾波對像素值比較大或者比較小的噪聲濾除的效果比較好,如:椒鹽噪聲,對比較均勻的噪聲濾除的效果一般,如:高斯噪聲。
中值濾波的優點:
中值濾波對於某些類型的隨機噪聲具有非常理想的降噪能力,對於線性平滑濾波而言,在處理的像素鄰域之內包含噪聲點時,噪聲的存在總會或多或少地影響該點的像素值的計算,(對於高斯平滑影響程度同噪聲點到中心點的距離成正比),但在中值濾波中噪聲點則常常是直接被忽略掉的;而且同線性平滑濾波器相比,中值濾波在降噪同時引起的模糊效應較低。
使用MATLAB展示中值濾波效果:
在matlab中中值濾波的函數是medfilt2函數,示例1,中值濾波對椒鹽噪聲和高斯噪聲的濾波效果展示。
1、采用的原圖是:
2、濾除椒鹽噪聲和高斯噪聲的對比代碼如下:
%% 濾波效果展示
clear; clc; close all;
rawimg = imread('..\picture\1.jpg');
[~,~,index] = size(rawimg);
if index ~= 1
rawimg = rgb2gray(rawimg); % 轉化為灰度圖
end
% 顯示原圖
figure;imshow(rawimg);title('原圖');
% 添加噪聲
salt_img=imnoise(rawimg,'salt & pepper',0.04); % 疊加密度為0.04的椒鹽噪聲
guas_img = imnoise(rawimg,'gaussian',0.04);
figure;subplot(1,2,1);imshow(salt_img);title('添加椒鹽噪聲');
subplot(1,2,2);imshow(guas_img);title('添加高斯噪聲');
% 進行濾波
salt_fit = medfilt2(salt_img,[3 3]); % 采用二維中值濾波函數對圖像濾波,濾波窗口是3*3
guas_fit = medfilt2(guas_img,[3,3]); % 濾除高斯噪聲
% 濾波效果:
figure;subplot(1,2,1);imshow(salt_fit);title('椒鹽噪聲濾波效果');
subplot(1,2,2);imshow(guas_fit);title('高斯噪聲濾波效果');
添加噪聲效果示例:
使用中值濾波濾除的效果示例:
分析:可以很明顯的看到,中值濾波對椒鹽噪聲的濾除效果比高斯噪聲要好,邊緣部分的細節有部分的保留。
3、選擇不同的窗口對椒鹽噪聲的濾除效果對比示例代碼:
%% 濾波窗口選擇展示
clear; clc; close all;
rawimg = imread('..\picture\1.jpg');
[~,~,index] = size(rawimg);
if index ~= 1
rawimg = rgb2gray(rawimg); % 轉化為灰度圖
end
% 添加噪聲
salt_img=imnoise(rawimg,'salt & pepper',0.04); % 疊加密度為0.04的椒鹽噪聲
figure;subplot(1,2,1);imshow(rawimg);title('原圖');
subplot(1,2,2);imshow(salt_img);title('添加椒鹽噪聲');
% 進行濾波
min_fit = medfilt2(salt_img,[3 3]); % 采用二維中值濾波函數對圖像濾波,濾波窗口是3*3
max_fit = medfilt2(salt_img,[9,9]); % 濾除高斯噪聲
% 濾波效果:
figure;subplot(1,2,1);imshow(min_fit);title('3*3濾波窗口效果');
subplot(1,2,2);imshow(max_fit);title('9*9濾波窗口效果');
添加椒鹽噪聲的效果示例:
分別選擇[3,3]濾波窗口和[9,9]濾波窗口對噪聲圖像進行濾波效果對比示例:
分析:可以很明顯看到,當中值濾波的窗口選擇越大的時候濾波的效果比較明顯,但是窗口選擇越大則對原圖的邊緣,細節部分濾除的部分就會越多,這個特性可以根據自己的需要進行調節。