图像去噪基于matl中值+均值+Lee+Kuan图像滤波含Matlab源码 1179期
Posted 紫极神光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像去噪基于matl中值+均值+Lee+Kuan图像滤波含Matlab源码 1179期相关的知识,希望对你有一定的参考价值。
一、简介
1 中值滤波
(1)概念:
(2)原理解释:
2 均值滤波
均值滤波是指任意一点的像素值,都是周围 N \\times M 个像素值的均值。例如下图中,红色点的像素值是其周围蓝色背景区域像素值之和除25,25=5\\times5 是蓝色区域的大小。
均值滤波详细的计算方法如下图所示:
其中5\\times5的矩阵称为核,针对原始图像内的像素点,采用核进行处理,得到结果图像,如下图所示:
提取 1/25 可以将核转换为如下形式:
3 Lee滤波
二、部分源代码
clear;
A1=imread('44.jpg')
A=double(A1);
figure(1)
imshow(A/256)
title('原始图像');
[a,b]=size(A);
ASp=imnoise(A/256,'speckle',0.02);
figure(2)
imshow(ASp);
title('含散斑噪声的图像');
% imwrite(ASp/256,'55.jpg');
index_ASp=std2(ASp)/mean2(ASp);%散斑指数 潘云《数字全息技术中散斑噪声滤波算法比较》
ENL=mean2(ASp)^2/std2(ASp)^2;%等效视数
psnr=PSNR(A,ASp);
%中值滤波
ME=Medf(ASp,3);%邻域 3*3
ENL_Me3=mean2(ME)^2/std2(ME)^2;%等效视数
index_ME3=std2(ME)/mean2(ME);%散斑指数
psnr_ME3=PSNR(A,ME);
figure(3)
% subplot(2,2,1);
imshow(ME);
title('中值滤波后的图像 3*3');
ME=Medf(ASp,5);%邻域
ENL_Me5=mean2(ME)^2/std2(ME)^2;%等效视数
index_ME5=std2(ME)/mean2(ME);%散斑指数
psnr_ME5=PSNR(A,ME);
figure(4)
% subplot(2,2,2);
imshow(ME);
title('中值滤波后的图像 5*5');
ME=Medf(ASp,7);%邻域
ENL_Me7=mean2(ME)^2/std2(ME)^2;%等效视数
index_ME7=std2(ME)/mean2(ME);%散斑指数
psnr_ME7=PSNR(A,ME);
figure(5)
% subplot(2,2,3);
imshow(ME);
title('中值滤波后的图像 7*7');
ME=Medf(ASp,9);%邻域
ENL_Me9=mean2(ME)^2/std2(ME)^2;%等效视数
index_ME9=std2(ME)/mean2(ME);%散斑指数
psnr_ME9=PSNR(A,ME);
figure(6)
% subplot(2,2,4);
imshow(ME);
title('中值滤波后的图像 9*9');
%Lee滤波
LE=Leef(256*ASp,5);
ENL_Lee5=mean2(LE)^2/std2(LE)^2;%等效视数
index_LE5=std2(LE)/mean2(LE);%散斑指数
psnr_LE5=PSNR(A,LE);
figure(7)
imshow(LE);
title('Lee滤波后的图像 5*5');
LE=Leef(256*ASp,7);
ENL_Lee7=mean2(LE)^2/std2(LE)^2;%等效视数
index_LE7=std2(LE)/mean2(LE);%散斑指数
psnr_LE7=PSNR(A,LE);
figure(8)
imshow(LE);
title('Lee滤波后的图像 7*7');
LE=Leef(256*ASp,9);
ENL_Lee9=mean2(LE)^2/std2(LE)^2;%等效视数
index_LE9=std2(LE)/mean2(LE);%散斑指数
psnr_LE9=PSNR(A,LE);
figure(9)
imshow(LE);
title('Lee滤波后的图像 9*9');
%Kuan滤波
KU=Kuanf(256*ASp,5);
ENL_Kuan5=mean2(KU)^2/std2(KU)^2;%等效视数
index_Ku5=std2(KU)/mean2(KU);%散斑指数
psnr_Ku5=PSNR(A,KU);
figure(10)
imshow(KU);
title('Kuan滤波后的图像 5*5');
KU=Kuanf(256*ASp,7);
ENL_Kuan7=mean2(KU)^2/std2(KU)^2;%等效视数
index_Ku7=std2(KU)/mean2(KU);%散斑指数
psnr_Ku7=PSNR(A,KU);
figure(11)
imshow(KU);
title('Kuan滤波后的图像 7*7');
KU=Kuanf(256*ASp,9);
ENL_Kuan9=mean2(KU)^2/std2(KU)^2;%等效视数
index_Ku9=std2(KU)/mean2(KU);%散斑指数
psnr_Ku9=PSNR(A,KU);
figure(12)
imshow(KU);
title('Kuan滤波后的图像 9*9');
%均值滤波
AV=Avef(ASp,3)
ENL_Aver3=mean2(AV)^2/std2(AV)^2;%等效视数
index_AV3=std2(AV)/mean2(AV);%散斑指数
psnr_AV3=PSNR(A,AV);
figure(13)
imshow(AV);
title('均值滤波后的图像 3*3');
AV=Avef(ASp,5)
ENL_Aver5=mean2(AV)^2/std2(AV)^2;%等效视数
index_AV5=std2(AV)/mean2(AV);%散斑指数
psnr_AV5=PSNR(A,AV);
figure(14)
imshow(AV);
title('均值滤波后的图像 5*5');
AV=Avef(ASp,7)
ENL_Aver7=mean2(AV)^2/std2(AV)^2;%等效视数
index_AV7=std2(AV)/mean2(AV);%散斑指数
psnr_AV7=PSNR(A,AV);
figure(15)
imshow(AV);
title('均值滤波后的图像 7*7');
AV=Avef(ASp,9)
ENL_Aver9=mean2(AV)^2/std2(AV)^2;%等效视数
index_AV9=std2(AV)/mean2(AV);%散斑指数
psnr_AV9=PSNR(A,AV);
figure(16)
imshow(AV);
title('均值滤波后的图像 9*9');
function [RIL] = Leef(A,N)
% Lee滤波
% A 输入灰度图像
% RIL 输出Lee滤波后的灰度图像
Ilee=A;
[height,width] = size(Ilee); % height, width:图像的高和宽
nr = floor(N/2); % N = 2*nr+1;
Ilee = double(Ilee);
Ilee2 = double(Ilee);
% L 视强度图像
L = 9; % 视数
delta = 1/sqrt(L); %噪声标准差
for i = 1:height
for j = 1:width
% 计算N*N窗口的均值与方差
sum = 0;
sum2 = 0;
num = 0;
for k = -nr:nr
for m = -nr:nr
if( (i+k >=1) && (i+k <= height) && (j+m >= 1) && (j+m <= width) ) % 避免数组越界
num = num + 1;
sum = sum + Ilee(i+k,j+m);
sum2 = sum2 + Ilee(i+k,j+m)*Ilee(i+k,j+m);
end
end
end
u = sum/num; % m均值 E(fxy)
v = sum2/num - u*u; % 方差 vxy
cu=delta/1;
ci=sqrt(v)/u;
% 计算中心点的值
if(u == 0)
k = 0;
else
k = (1 - cu*cu/(ci*ci));% Qxy 《SAR图像斑点噪声抑制方法与应用研究》杨红磊
% k=(1-delta/sqrt(v))/(1+delta);
% k = (v - delta*delta*u*u) / (v + v*delta*delta);
end
三、运行结果
四、备注
版本:2014a
以上是关于图像去噪基于matl中值+均值+Lee+Kuan图像滤波含Matlab源码 1179期的主要内容,如果未能解决你的问题,请参考以下文章
图像去噪基于matlab GUI中值+均值+维纳+小波滤波图像去噪含Matlab源码 753期
图像去噪均值滤波+中值滤波+高斯低通滤波+多种小波变换图像去噪matlab源码GUI