返回列表
www.xtiangou.com
图像降噪算法-Matlab代码
[复制链接]
admin
发表于 2016-7-25 17:37:33
|
显示全部楼层
|
阅读模式
该代码采用了滤波法进行降噪处理。代码中添加的噪声为高斯噪声,采用了标准正态分布和N(0,5)高斯分布两个例子,用户下载后可以根据需要修改噪声类型和噪声参数。代码执行后,可以得到原始图像、加噪声后的图像和滤波后图像的对比结果。
以下为实验结果
点击此处下载
免费下载
805 Bytes, 下载次数: 1913
2016-7-25 17:36 上传
点击文件名下载附件
%Function:Noise Removal
%Input:the size of the filter mask
clc;clear all;close all;
%%%%%%%%%%%%%%%%%%%%%%%%
%%% Input & Imread %%%
%%%%%%%%%%%%%%%%%%%%%%%%
W_S=input('\nPlease Input the Window(N*N) Size N(Odd Number)=:\n');
N_flag=input('\nWhich Kind of Noise do You Choose(Input 1 or 2):\n1.N(0,1) Normal Distribution with Mu=0 and Sigma=1\n2.N(0,25) Normal Distribution with Mu=0 and Sigma=5\n');
I0=imread('yourimage.jpg');
I=rgb2gray(I0);I=double(I);
[M,N]=size(I);
if N_flag==1
I_N=randn(M,N);
else
I_N=normrnd(0,5,M,N);
end
J0=I+I_N; %Image with Noise
J=J0;
%%%%%%%%%%%%%%%%%%%
%%% Filtering %%%
%%%%%%%%%%%%%%%%%%%
Half_W_S=(W_S-1)/2;
F_matrix=(1/W_S^2)*ones(W_S,W_S); %Filter Matrix
for p=Half_W_S+1:M-Half_W_S
for q=Half_W_S+1:N-Half_W_S
filter_sum=0;
for k=-Half_W_S:Half_W_S
for l=-Half_W_S:Half_W_S
filter_sum=filter_sum+J0(p+k,q+l)*F_matrix(k+Half_W_S+1,l+Half_W_S+1);
end
end
J(p,q)=filter_sum;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Normalizing the Image & Figure %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Jmin=min(min(J));
Jmax=max(max(J));
J=round((J-Jmin).*(255/(Jmax-Jmin)));
subplot(1,3,1);
imshow(uint8(I));title('Original Gray Image');
subplot(1,3,2);
imshow(uint8(J0));title('Noised Image');
subplot(1,3,3);
imshow(uint8(J));title('Filtered Image');
复制代码
补充
使用道具
举报
提升卡
沉默卡
变色卡
千斤顶
照妖镜
返回列表