Matlab图像处理创新实践-实验1【图像滤波基础(1)】

  1. Matlab图像处理创新实践-实验1【图像滤波基础(1)】
  2. Matlab图像处理创新实践-实验2【图像滤波基础(2)】
  3. Matlab图像处理创新实践-实验3【图像锐化
  4. Matlab图像处理创新实践-实验4【大实验——GUI综合设计】

目   录

一、实验目的

二、实验内容

三、实验过程及结果

步骤1、2、3

步骤4

步骤5、6

步骤7

步骤8

四、分析与思考

附录:代码汇总


一、实验目的

通过简单实验完成对一个图像去除噪声的操作,来熟悉并了解图像处理中空域滤波的概念,通过实际操作掌握滤波器的生成和基本的滤波操作,以完成基本的图像处理目的。

二、实验内容

步骤1:用手机给自己拍一张美照(必须是本人照片);

步骤2:将你的照片放到计算机内;

步骤3:启动Matlab,并通过imread(); 读取该照片,然后通过imshow()进行显示;如果图片过大,可以通过imresize(A,m)进行缩小,其中A为图像,m为尺寸变化系数,比如可设为0.2,尺寸为原来的五分之一;

步骤4:执行noise_im = imnoise(im, 'gaussian');函数,对你刚刚读取到的照片添加一定量的噪声,其中,im代表你刚刚读取到的图像;

步骤5:利用F = fspecial('gaussian', Size, Sigma);生成一个高斯滤波器,其中,Size和Sigma的数值自己确定;

步骤6:通过new_im = imfilter(noise_im, F)函数对添加了噪声的图像进行滤波操作,并观察效果;

步骤7:反复调整第五步中的Size和Sigma两个参数,并反复进行滤波操作,最终将你最满意的结果保存,并显示,同时记录下得到最满意结果时的两个参数值;

步骤8:可尝试迭代操作,即 im = imfilter(im, F); im = imfilter(im, F);……即前一次滤波的结果又作为第二次滤波的输入参数。这样迭代多次,观察效果,并选择出迭代次数以及和Size,Sigma两个参数的最佳搭配值。

三、实验过程及结果

【在这里描述下你的实验操作过程和相应代码,以及你得到的最终结果,需图文并茂。】

尊龙

步骤1、2、3

步骤1用手机给自己拍一张美照(必须是本人照片);

步骤2将你的照片放到计算机内;

步骤3启动Matlab,并通过imread(); 读取该照片,然后通过imshow()进行显示;如果图片过大,可以通过imresize(A,m)进行缩小,其中A为图像,m为尺寸变化系数,比如可设为0.2,尺寸为原来的五分之一;

步骤4

步骤4:执行noise_im = imnoise(im, 'gaussian');函数,对你刚刚读取到的照片添加一定量的噪声,其中,im代表你刚刚读取到的图像;

步骤5、6

步骤5:利用F = fspecial('gaussian', Size, Sigma);生成一个高斯滤波器,其中,Size和Sigma的数值自己确定;

步骤6:通过new_im = imfilter(noise_im, F)函数对添加了噪声的图像进行滤波操作,并观察效果;

步骤7

步骤7:反复调整第五步中的Size和Sigma两个参数,并反复进行滤波操作,最终将你最满意的结果保存,并显示,同时记录下得到最满意结果时的两个参数值;

步骤8

步骤8:可尝试迭代操作,即 im = imfilter(im, F); im = imfilter(im, F);……即前一次滤波的结果又作为第二次滤波的输入参数。这样迭代多次,观察效果,并选择出迭代次数以及和Size,Sigma两个参数的最佳搭配值。

四、分析与思考

【在此描述下你从该实验中得出的结论,并对实验结果进行分析,解释下为什么高斯滤波器可以去除噪声,可以查阅资料。】

此次试验,学习了如何使用Matlab对图像进行处理(展示图像、放大图像、缩小图像、噪声处理等)。还学习了高斯滤波器,高斯滤波器是一种线性滤波器,能够有效的抑制噪声,平滑图像,其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出。

附录:代码汇总(ex1.m)

%--------步骤3--------
x = imread('E:/zunlong.jpg'); % 读取图片:将图像数据读取到Matlab环境中
imshow(x); % 显示图片
% 警告: Image is too big to fit on screen; displaying at 8% 
% > In imuitools\private\initSize at 71
%   In imshow at 282 

%--------步骤3--------
smallx = imresize(x, 0.5); %在保持图像形状的基础上对图像的大小进行改变
figure, imshow(smallx);    % 显示图片


% --------步骤4--------
x = imread('E:/zunlong.jpg'); % 读取图片:将图像数据读取到Matlab环境中
smallx = imresize(x, 0.5);    %在保持图像形状的基础上对图像的大小进行改变

noise_x = imnoise(smallx, 'gaussian'); % 噪声处理 对刚刚读取到的照片添加一定量的噪声,其中,im代表刚刚读取到的图像;
figure, imshow(noise_x);               % figure: 生成新的图片窗口,不覆盖原窗口


% --------步骤5--------
F = fspecial('gaussian', 5, 1); % F = fspecial('gaussian', Size, Sigma);生成一个高斯滤波器


%--------步骤6--------
x = imread('E:/zunlong.jpg');  % 读取图片:将图像数据读取到Matlab环境中
smallx = imresize(x, 0.5);     %在保持图像形状的基础上对图像的大小进行改变
noise_x = imnoise(smallx, 'gaussian'); % 噪声处理 对刚刚读取到的照片添加一定量的噪声,其中,im代表刚刚读取到的图像;

F = fspecial('gaussian', 5, 1); % F = fspecial('gaussian', Size, Sigma);生成一个高斯滤波器
new_im1 = imfilter(noise_x, F); % new_im = imfilter(noise_im, F)函数对添加了噪声的图像进行滤波操作
imshow(new_im1); % figure, 

F = fspecial('gaussian', 50, 1); % F = fspecial('gaussian', Size, Sigma);生成一个高斯滤波器
new_im2 = imfilter(noise_x, F);  % new_im = imfilter(noise_im, F)函数对添加了噪声的图像进行滤波操作
imshow(new_im2); % figure, 

F = fspecial('gaussian', 50, 30); % F = fspecial('gaussian', Size, Sigma);生成一个高斯滤波器
new_im3 = imfilter(noise_x, F);   % new_im = imfilter(noise_im, F)函数对添加了噪声的图像进行滤波操作
imshow(new_im3); % figure, 

subplot(2,2,1);imshow(x);title('原图');
subplot(2,2,2);imshow(smallx);title('缩小至原来的0.05倍');
subplot(2,2,3);imshow(imnoise(x, 'gaussian'));title('加噪');
subplot(2,2,4);imshow(imfilter(noise_x, fspecial('gaussian', 5, 1)));title('滤波处理');


% --------步骤7--------
x = imread('E:/zunlong.jpg'); % 读取图片:将图像数据读取到Matlab环境中
smallx = imresize(x, 0.05);   %在保持图像形状的基础上对图像的大小进行改变
noise_x = imnoise(smallx, 'gaussian'); % 噪声处理 对刚刚读取到的照片添加一定量的噪声,其中,im代表刚刚读取到的图像;

F = fspecial('gaussian', 5, 1);   % F = fspecial('gaussian', Size, Sigma);生成一个高斯滤波器
new_im1 = imfilter(noise_x, F);   % new_im = imfilter(noise_im, F)函数对添加了噪声的图像进行滤波操作
subplot(2,2,1), imshow(new_im1),title('原始图像');

F = fspecial('gaussian', 50, 1);  % F = fspecial('gaussian', Size, Sigma);生成一个高斯滤波器
new_im2 = imfilter(noise_x, F);   % new_im = imfilter(noise_im, F)函数对添加了噪声的图像进行滤波操作
subplot(2,2,2), imshow(new_im2),title('Size、Sigma:50、1');

F = fspecial('gaussian', 50, 5); % F = fspecial('gaussian', Size, Sigma);生成一个高斯滤波器
new_im3 = imfilter(noise_x, F);  % new_im = imfilter(noise_im, F)函数对添加了噪声的图像进行滤波操作
subplot(2,2,3), imshow(new_im3),title('Size、Sigma:50、5');

F = fspecial('gaussian', 100, 1); % F = fspecial('gaussian', Size, Sigma);生成一个高斯滤波器
new_im4 = imfilter(noise_x, F);   % new_im = imfilter(noise_im, F)函数对添加了噪声的图像进行滤波操作
subplot(2,2,4), imshow(new_im4),title('Size、Sigma:100、1');


%--------步骤8--------
x = imread('E:/zunlong.jpg'); % 读取图片:将图像数据读取到Matlab环境中
smallx = imresize(x, 0.5);    %在保持图像形状的基础上对图像的大小进行改变
noise_x = imnoise(smallx, 'gaussian'); % 噪声处理 对刚刚读取到的照片添加一定量的噪声,其中,im代表刚刚读取到的图像;

F = fspecial('gaussian', 50, 1); % F = fspecial('gaussian', Size, Sigma);生成一个高斯滤波器

new_im5 = imfilter(noise_x, F);  % new_im = imfilter(noise_im, F)函数对添加了噪声的图像进行滤波操作
figure, imshow(new_im5);

new_im6 = imfilter(new_im5, F);  % new_im = imfilter(noise_im, F)函数对添加了噪声的图像进行滤波操作
figure, imshow(new_im6);

new_im7 = imfilter(new_im6, F);  % new_im = imfilter(noise_im, F)函数对添加了噪声的图像进行滤波操作
figure, imshow(new_im7);

🤣多谢观看、

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

upward337

谢谢老板~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值