对一幅带有噪声图像采用空域和频域的滤波方法实现平滑处理和锐化处理
博客使用指南:把每一节的 代码按顺序和提示复制到matlab就行。
准备工作
原理
造一张带噪声的图像,用imnoise()函数,我这里加了高斯噪声,注意用完的图像会变成double类的,对后续运算有影响。
代码
img0=imread('01.jpg');
img0=rgb2gray(img0);
img1=imnoise(img0,'gaussian',0,0.02);%加噪声,后两位参数可以改
[m,n]=size(img1);
题目一:对一幅带有噪声图像采用空域和频域的滤波方法实现平滑处理,空域和频域至少选择一种方法自己编写代码实现,并比较、分析不同窗口大小的滤波方法对其结果的影响
原理
空域滤波常用的平滑就方框滤波、均值滤波、中值滤波、双边滤波;频域滤波常用的平滑就理想低通滤波、巴特沃思低通滤波、高斯低通滤波这样子,如果想多找几种代码的话,就照这个思路找。
代码,害,就硬抄平滑代码来源。
代码
平滑就先做一下预处理,如下:
fz0=3;%滤波器窗口大小
z0=zeros(m+fz0-1,n+fz0-1);%拓展图像边界
half0=floor(fz0/2); %滤波器窗口中点的index-1
z0(half0+1:m+half0,half0+1:n+half0)=img1;
然后开始处理就完事了,如下:
%空域均值滤波
filter0 = 1/fz0^2 * ones(fz0);
G1 = zeros(m, n);
for i = 1:m
for j =