作业帮 > 综合 > 作业

求matlab大神给下面一个源程序给个详细的注释,就是程序每一步的操作,速求

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 07:40:28
求matlab大神给下面一个源程序给个详细的注释,就是程序每一步的操作,速求
g=imread('C:\Users\zhourui\Desktop\1.jpg'); %读入图像的具体位置,
k=imnoise(g,'gaussian',0.1);
v=rgb2gray(k);
subplot(3,2,1);
imshow(g)
title('orginal image');
subplot(3,2,2);
imshow(v)
title('noise image');
[h,w]=size(v);
n=9;
f=double(v);
a=ones(n,n);
y=f;
for i=1:h-n+1
for j=1:w-n+1
a=f(i:i+(n-1),j:j+(n-1));
s=sum(sum(a));
y(i+(n-1)/2,j+(n-1)/2)=s/(n*n);
end
end
subplot(3,2,3);
imshow(uint8(y))
title('noise reduction by average filter');
x=f;
for i=1:h-n+1
for j=1:w-n+1
c=f(i:i+(n-1),j:j+(n-1));
e=c(1,:);
for u=2:n
e=[e,c(u,:)];
end
mm=median(e);
x (i+(n-1)/2,j+(n-1)/2)=mm;
end
end
subplot(3,2,4);
imshow(uint8(x))
title('noise reduction by median filter');
求matlab大神给下面一个源程序给个详细的注释,就是程序每一步的操作,速求
g=imread('C:\Users\zhourui\Desktop\1.jpg'); %读入图像的具体位置,
k=imnoise(g,'gaussian',0.1); %图像去噪(高斯噪声)
v=rgb2gray(k); %图像由rgb转为gray
subplot(3,2,1); %当前图像显示在figure中的第一个(总共可以同时显示6个)
imshow(g) %将原始图像显示在第一个(第一行第一个)
title('orginal image'); %figure中第一个图像的title
subplot(3,2,2); %显示figure中的第二个(第一行第二个)
imshow(v) %将去噪后的图像显示在figure中的第二个
title('noise image'); %figure中第二个图的title
[h,w]=size(v); %计算去噪图像的大小(h行数,wl为列数)
n=9; %设定变量n=9
f=double(v); %将去噪图像v转为double型变量f
a=ones(n,n); %变量a为一个n*n的矩阵,元素均为1
y=f; %将f的值赋给y
%每个元素的值改为9*9窗口的灰度均值
%即均值滤波,窗口大小为9*9
%均值滤波结果存储在y中
for i=1:h-n+1
for j=1:w-n+1
a=f(i:i+(n-1),j:j+(n-1));
s=sum(sum(a));
y(i+(n-1)/2,j+(n-1)/2)=s/(n*n);
end
end
subplot(3,2,3); %显示figure中的第三个图像(第一行第三个)
imshow(uint8(y)) %显示均值滤波的结果
title('noise reduction by average filter'); %均值滤波的title
x=f; %f赋值给x
%每个元素的值改为9*9窗口的灰度大小的中间值
%即中值滤波,窗口大小为9*9
%中值滤波结果存储在x中
for i=1:h-n+1
for j=1:w-n+1
c=f(i:i+(n-1),j:j+(n-1));
e=c(1,:);
for u=2:n
e=[e,c(u,:)];
end
mm=median(e);
x (i+(n-1)/2,j+(n-1)/2)=mm;
end
end
subplot(3,2,4);%显示figure中的第四个图像(第二行第一个)
imshow(uint8(x))%显示中值滤波的结果
title('noise reduction by median filter');%中值滤波的title
再问: 主要是那个for循环不明白,能详细解释下吗?谢谢
再答: 均值滤波就是对图片上每个元素,以该元素为中心,取一个9*9的窗口,求这个窗口中所有元素的灰度均值作为该元素滤波后的值,即均值滤波。 中值滤波也是对图片上每个元素,以该元素为中心,取一个9*9的窗口,把窗口内所有元素的灰度值排序取中间值作为该元素滤波后的值,即中值滤波。