matlab实现灰度图像空间域滤波
我的学记|刘航宇的博客

matlab实现灰度图像空间域滤波

刘航宇
4年前发布 /正在检测是否收录...
温馨提示:
本文最后更新于2021年06月02日,已超过1398天没有更新,若内容或图片失效,请留言反馈。

实验目的:掌握采用图像灰度图像空间域平滑、去噪的一般方法方法,并编程实现。

实验内容:编程实现灰度图像空间域滤波:至少包括 3×3、5×5窗口的均值滤波与中值滤波,并比较不同方案增强后的效果及影响因素。

实验平台:Matlab

实验代码:

%matlab实现灰度图像空间域滤波,自定义窗口的均值、中值、高斯滤波,189064238刘航宇

try  

%步骤一:彩色、灰度变换  

h=imread('D:\图片\image\liu.jpg'); %读入彩色图片

subplot(2,2,1),imshow(h);title('原图');  %显示原图像

c=rgb2gray(h); %把彩色图片转化成灰度图片,256级  

subplot(2,2,2),imshow(c),title('原始灰度图象'); %显示原始图象  

g=imnoise(c,'gaussian',0.1,0.002); %加入高斯噪声  

subplot(2,2,3),imshow(g),title('加入高斯噪声之后的图象'); %显示加入高斯噪声之后的图象    

%步骤二:用系统预定义滤波器进行均值滤波  

n=input('请输入均值滤波器模板大小\n');  

A=fspecial('average',n); %生成系统预定义的3X3滤波器  

Y=filter2(A,g)/255;           %用生成的滤波器进行滤波,并归一化  

figure,imshow(Y),title('用系统函数进行均值滤波后的结果'); %显示滤波后的图象  

%步骤三:用Matlab系统函数进行中值滤波  

n2=input('请输入中值滤波的模板的大小\n');  

Y1=medfilt2(g,[n2 n2]);   %调用系统函数进行中值滤波,n2为模板大小   

figure,imshow(Y1),title('用Matlab系统函数进行中值滤波之后的结果'); %显示滤波后的图象  

%步骤四:用matlab系统函数进行高斯滤波  

n3=input('请输入高斯滤波器的均值\n');  

k=input('请输入高斯滤波器的方差\n');  

A2=fspecial('gaussian',k,n3);      %生成高斯序列  

Y2=filter2(A2,g)/255;              %用生成的高斯序列进行滤波  

figure,imshow(Y2),title('用Matlab函数进行高斯滤波之后的结果');    %显示滤波后的图象  

 

catch           %捕获异常  

    disp(lasterr);     %如果程序有异常,输出  

end

ps:方差填1,2,3,4任意一个即可

步骤及其实验现象:

图片[1] - matlab实现灰度图像空间域滤波 - 我的学记|刘航宇的博客
然后输入模板大小
图片[2] - matlab实现灰度图像空间域滤波 - 我的学记|刘航宇的博客
然后产生三个图窗
图片[3] - matlab实现灰度图像空间域滤波 - 我的学记|刘航宇的博客
图片[4] - matlab实现灰度图像空间域滤波 - 我的学记|刘航宇的博客
图片[5] - matlab实现灰度图像空间域滤波 - 我的学记|刘航宇的博客
然后输入 clc;clear
重新输入本代码,完成5*5模板,在此不再赘述。

结果分析:

请自行上网查询均值、中值、高斯滤波区别、学习。

© 版权声明
THE END
喜欢就支持一下吧
点赞 5 分享 赞赏
评论 抢沙发
取消