一、噪聲添加
椒鹽噪聲:
I_noise=double(imnoise(I,'salt & pepper',0.02));%后面0.02為參數
高斯噪聲:
I_noise=double(imnoise(I,'gaussian',0.02));
二、均值濾波原理
主要思想為鄰域平均法,即用幾個像素灰度的平均值來代替每個像素的灰度。有效抑制加性噪聲。
缺點:容易引起圖像模糊,可以對其進行改進,主要避開對景物邊緣的平滑處理。
原像素值:
|1|2|3|
|4|5|6|
|7|8|9|
均值后:(123456789去均值為5,放在中心位置,由此可見均值濾波會忽略掉四周的像素值,四周會變得模糊)
| | | |
| |5| |
| | | |
以下代碼分別添加了 高斯噪聲和椒鹽噪聲 然后進行均值濾波處理
對椒鹽噪聲的各種均值濾波處理
%均值濾波
%椒鹽噪聲部分
figure(2);
%顯示原圖
subplot(2,3,1);
imshow(I,[]);%[]自動產生適當的比例顯示圖像
title('原圖');
%添加椒鹽信號
subplot(2,3,2);
I_noise=double(imnoise(I,'salt & pepper',0.02));%salt & pepper注意中間的空格 無空格報錯
imshow(I_noise,[]);title('椒鹽噪聲');
%均值濾波
subplot(2,3,3);
I_3=fspecial('average',[3,3]);%3*3均值濾波
I_3=imfilter(I_noise,I_3);
imshow(I_3,[]);title('3*3算數均值濾波');
subplot(2,3,4);
I_=exp(imfilter(log(I_noise),fspecial('average',3)));%算數均值濾波
imshow(I_,[]);title('3*3幾何均值濾波');subplot(2,3,5);
Q=-1.5;
I_mean=imfilter(I_noise.^(Q+1),fspecial('average',3))./imfilter(I_noise.^Q,fspecial('average',3));
imshow(I_mean,[]);title('Q=-1.5逆諧波濾波器濾波');subplot(2,3,6);
Q=1.5;
I_mean=imfilter(I_noise.^(Q+1),fspecial('average',3))./imfilter(I_noise.^Q,fspecial('average',3));
imshow(I_mean,[]);title('Q=-1.5逆諧波濾波器濾波')
2. 對高斯噪聲的各種均值濾波處理
%%均值濾波
%高斯噪聲部分
clc;clear;
I=imread('1.jpg');
I=im2double(I);
I=rgb2gray(I);
%MappedData = mapminmax(I ,0, 255)
h=figure(1);
%顯示原圖
subplot(2,3,1);
imshow(I,[]);%[]自動產生適當的比例顯示圖像
title('原圖');
%添加高斯噪聲
subplot(2,3,2);
I_noise=double(imnoise(I,'gaussian',0.02));%salt & pepper注意中間的空格 無空格報錯
imshow(I_noise,[]);title('高斯噪聲');
%均值濾波
subplot(2,3,3);
I_3=fspecial('average',[3,3]);%3*3均值濾波 建立預定義的濾波算子
I_3=imfilter(I_noise,I_3);%(待處理矩陣,濾波器)
imshow(I_3,[]);title('3*3均值濾波');
subplot(2,3,4);
I_=exp(imfilter(log(I_noise),fspecial('average',3)));%算數均值濾波
imshow(I_,[]);title('3*3幾何均值濾波');
subplot(2,3,5);
Q=-1.5;
I_mean=imfilter(I_noise.^(Q+1),fspecial('average',3))./imfilter(I_noise.^Q,fspecial('average',3));
imshow(I_mean,[]);title('Q=-1.5逆諧波濾波器濾波');
subplot(2,3,6);
Q=1.5;
I_mean=imfilter(I_noise.^(Q+1),fspecial('average',3))./imfilter(I_noise.^Q,fspecial('average',3));
imshow(I_mean,[]);title('Q=1.5逆諧波濾波器濾波');
均值濾波方法二:https://wenku.baidu.com/view/bef73431366baf1ffc4ffe4733687e21af45ff14.html
函數說明
-
imfilter函數:
功能:對任意類型數組或者圖像進行濾波,或者理解為建立一個自定義功能的類型濾波器(個人理解,不知道對否)。
意義:
imfilter(img,filter);
img:帶處理矩陣
filter: 濾波器
其他詳解:https://blog.csdn.net/zhuwei0710/article/details/68169317
-
fspecial函數:
建立預處理的預定義的濾波算子
https://blog.csdn.net/hustrains/article/details/9153553
結果分析
4.1、對高斯噪聲圖像進行濾波:
總體來說兩個逆諧波均值濾波器的去噪小效果不如均值濾波器濾波的效果。算數均值濾波會使得圖像邊界變得模糊,而幾何均值濾波不會導致此問題。
原因是:算術均值濾波器的將多個像素的灰度值線性平均,用均值來代替各個像素值,會導致邊界圖像模糊。采用線性的方法,平均整個窗口范圍內的像素值,它不能很好地保護圖像細節,在圖像去噪的同時也破壞了圖像的細節部分,從而使圖像變得模糊,不能很好地去除噪聲點。
4.2、對椒鹽噪聲圖像進行濾波:
算數均值濾波對椒鹽噪聲的去除效果較好;Q=-1.5的逆諧波濾波器留下了黑色的胡椒噪聲,而Q=1.5的逆諧波濾波器留下了白色的鹽噪聲。均值濾波對高斯噪聲表現較好,對椒鹽噪聲表現較差。
原理:對于“胡椒”噪聲應該采用Q值為正值的濾波器去噪,而用Q值為負值的濾波器對“鹽”噪聲進行去噪。
總結
以上是生活随笔為你收集整理的matlab均值滤波实现的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。