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

目   录

一、实验目的

二、实验内容

三、实验过程及结果

步骤1、2

步骤3

步骤4

步骤5

步骤6、7

步骤8、9、10

四、分析与思考

附录:代码汇总

主文件——ex3.m

函数文件


一、实验目的

掌握matlab环境下,函数的编写方法;熟悉并了解图像处理中空域滤波的概念,通过实际操作掌握滤波器的生成和基本的滤波;理解图像锐化的实现方法和步骤,理解图像锐化的基本理论。

二、实验内容

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

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

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

步骤 4:利用rgb2gray()函数将图像转换为灰度图像;

步骤5:利用一种平滑滤波器,F,如9*9的均值滤波器或高斯滤波器,通过new_im = filter2(F, im)对图像进行滤波;

步骤6:利用double()将原图像类型转换为浮点型,然后按照“原图像 + 原图像 - 平滑图像”的模式,进行计算;

步骤7:利用uint8()或mat2gray()将得到的结果图像,进行类型转换,并将原图像和锐化后的图像一同显示在窗口中;

步骤8:利用一种边缘滤波器,FF,如sobel、prewitt等,通过new_im = filter2(FF, im)对图像进行滤波;

步骤9:利用double()将原图像类型转换为浮点型,然后按照“原图像 + 边缘图像”的模式,进行计算;

步骤10:利用uint8()或mat2gray()将得到的结果图像,进行类型转换,并将原图像和锐化后的图像一同显示在窗口中;

注意:锐化操作的代码需形成函数文件(.m后缀),文件名为姓名的汉语拼音,如zhangsan.m,参考原型如下:

function out_im = zhangsan(input_im)

三、实验过程及结果

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

步骤1、2

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

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

Matlab内置图片:Peppers.png

步骤3

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

步骤4

步骤 4:利用rgb2gray()函数将图像转换为灰度图像;

步骤5

步骤5:利用一种平滑滤波器,F,如9*9的均值滤波器或高斯滤波器,通过new_im = filter2(F, im)对图像进行滤波;

Matlab内置图片:saturn.png

步骤6、7

步骤6:利用double()将原图像类型转换为浮点型,然后按照“原图像 + 原图像 - 平滑图像”的模式,进行计算;

步骤7:利用uint8()或mat2gray()将得到的结果图像,进行类型转换,并将原图像和锐化后的图像一同显示在窗口中;

步骤8、9、10

步骤8:利用一种边缘滤波器,FF,如sobel、prewitt等,通过new_im = filter2(FF, im)对图像进行滤波;

步骤9:利用double()将原图像类型转换为浮点型,然后按照“原图像 + 边缘图像”的模式,进行计算;

步骤10:利用uint8()或mat2gray()将得到的结果图像,进行类型转换,并将原图像和锐化后的图像一同显示在窗口中;

注意:锐化操作的代码需形成函数文件(.m后缀),文件名为姓名的汉语拼音,如zhangsan.m,参考原型如下:

function out_im = zhangsan(input_im)

四、分析与思考

【在此描述下你从该实验中得出的结论,并对实验结果进行分析,解释下锐化实现的过程和规律,例如滤波器参数的变化会导致锐化结果发生怎样的变化,可以查阅资料,该部分占最终成绩的50%】

此次实验,收获甚多,学会了Matlab中函数的使用。Matlab中函数的使用较为灵活,可以传递多个形式参数且形式参数的可使用数据类型比较多。使用函数,应尽可能地令函数功能最小化,一个函数不要实现太多的功能。

锐化图像的实现过程1:

  1. 首先利用grb2gray()函数将图像转换为灰度图像;
  2. 然后使用边缘滤波器对灰度图像进行滤波(均值滤波器与高斯滤波器对图像进行滤波的效果较好),得到灰度图像的较为模糊的平滑图像;
  3. 使用原图减去滤波结果图,得到突出边缘轮廓的高频图;
  4. 最后,将原图加上突出边缘轮廓的高频图,即可得到锐化结果图。观察锐化结果图可以看出:锐化后的图像轮廓比原图像的轮廓清晰且锐化结果图清晰度更高。

锐化图像的实现过程2:

  1. 首先利用grb2gray()函数将图像转换为灰度图像;
  2. 然后使用边缘滤波器对灰度图像进行滤波(均值滤波器与高斯滤波器对图像进行滤波的效果较好),得到灰度图像的较为模糊的平滑图像;
  3. 原图+滤波结果图,即可得到锐化结果图。

附录:代码汇总

主文件——ex3.m

%--------步骤3--------
x = imread('saturn.png'); % 读取图片:将图像数据读取到Matlab环境中 peppers.png: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.05); % 缩小图片
figure, imshow(smallx);     % figure:生成新的图片窗口,不覆盖原窗口% --------步骤4--------
x = imread('saturn.png');  % 读取图片:将图像数据读取到Matlab环境中
smallx = imresize(x, 0.05);
imshow(smallx);
gx = rgb2gray(smallx);
f1  = fspecial('average', 5);
gx1 = filter2(f1, gx);
figure, imshow(uint8(gx1));% --------步骤5-------- 利用平滑滤波器,对图像进行滤波
x = imread('saturn.png');  % 读取图片:将图像数据读取到Matlab环境中
smallx = imresize(x, 0.05);
gx = rgb2gray(smallx);f1 = fspecial('average', [9 9]);  % 1、9*9均值滤波器
gx1 = filter2(f1, gx);
f2 = fspecial('gaussian', [9 9]); % 2、高斯滤波器
gx2 = filter2(f2, gx);
f3 = fspecial('laplacian');       % 3、拉普拉斯滤波器
gx3 = filter2(f3, gx);
f4 = fspecial('sobel');           % 4、sobel滤波器
gx4 = filter2(f4, gx);
f5 = fspecial('prewitt');         % 5、prewitt滤波器
gx5 = filter2(f5, gx);subplot(2, 3, 1);imshow(smallx);title('缩小至原来的0.05倍');
subplot(2, 3, 2);imshow(uint8(gx1));title('1、9*9均值滤波器');
subplot(2, 3, 3);imshow(uint8(gx2));title('2、9*9高斯滤波器');
subplot(2, 3, 4);imshow(uint8(gx3));title('3、拉普拉斯滤波器');
subplot(2, 3, 5);imshow(uint8(gx4));title('4、sobel滤波器');
subplot(2, 3, 6);imshow(uint8(gx5));title('5、prewitt滤波器');% --------步骤5-------- 利用平滑滤波器,对图像进行滤波
x = imread('saturn.png'); % 读取图片:将图像数据读取到Matlab环境中
smallx = imresize(x, 0.05);
imshow(smallx);
gx = rgb2gray(smallx);f1  = fspecial('average', 5); % 1、均值滤波器
gx1 = filter2(f1, gx);
f2  = fspecial('gaussian');   % 2、高斯滤波器
gx2 = filter2(f2, gx);
f3  = fspecial('laplacian');  % 3、拉普拉斯滤波器
gx3 = filter2(f3, gx);
f4  = fspecial('sobel');      % 4、sobel滤波器
gx4 = filter2(f4, gx);
f5  = fspecial('prewitt');    % 5、prewitt滤波器
gx5 = filter2(f5, gx);
f6  = fspecial('disk');       % 6、disk滤波器
gx6 = filter2(f6, gx);
f7  = fspecial('log');        % 7、log滤波器
gx7 = filter2(f7, gx);
f8  = fspecial('motion');     % 8、motion滤波器
gx8 = filter2(f8, gx);
subplot(3, 3, 1);imshow(smallx);title('缩小至原来的0.05倍');
subplot(3, 3, 2);imshow(uint8(gx1));title('1、均值滤波器');
subplot(3, 3, 3);imshow(uint8(gx2));title('2、高斯滤波器');
subplot(3, 3, 4);imshow(uint8(gx3));title('3、拉普拉斯滤波器');
subplot(3, 3, 5);imshow(uint8(gx4));title('4、sobel滤波器');
subplot(3, 3, 6);imshow(uint8(gx5));title('5、prewitt滤波器');
subplot(3, 3, 7);imshow(uint8(gx6));title('6、disk滤波器');
subplot(3, 3, 8);imshow(uint8(gx7));title('7、log滤波器');
subplot(3, 3, 9);imshow(uint8(gx8));title('8、motion滤波器');%--------步骤6、7-------- 得到图像锐化图:方案1、使用“平滑滤波器”
x = imread('saturn.png');  % 读取图片:将图像数据读取到Matlab环境中
smallx = imresize(x, 0.05);
gx = rgb2gray(smallx);
sharpx = luweixing(gx, 5);F  = fspecial('average', [9 9]); % 1、9*9均值滤波器
y  = filter2(F, gx);
xy = double(gx) - y;  % 进行数据转换,保证数据类型一致;高频图、轮廓、边缘
subplot(2, 2, 1);imshow(gx);title('灰度图像');
subplot(2, 2, 2);imshow(uint8(y),  []);title('1、利用滤波器,对图像进行滤波');
subplot(2, 2, 3);imshow(uint8(xy), []);title('2、高频图,突出边缘轮廓');
subplot(2, 2, 4);imshow(uint8(sharpx));title('3、锐化结果图');%--------步骤8、9、10-------- 得到图像锐化图:方案2、原图+边缘图
x = imread('saturn.png');
smallx = imresize(x, 0.05);
gx = rgb2gray(smallx);
sharpx = luweixing(gx);
imshow(uint8(sharpx));F2  = fspecial('prewitt');
y2  = filter2(F2, gx);      % 反映边缘结构情况
sharpx2 = double(gx) + y2;  % 原图像+边缘图像subplot(2, 2, 1);imshow(gx);title('灰度图像');
subplot(2, 2, 2);imshow(uint8(y2), []); title('利用滤波器,对图像进行滤波');
subplot(2, 2, 3);imshow(uint8(sharpx)); title('锐化方案1、使用“平滑滤波器”');
subplot(2, 2, 4);imshow(uint8(sharpx2));title('锐化方案2、原图+边缘图');

函数文件

% 输入图像,输出锐化结果(锐化图:提高图像的清晰度)
function X = luweixing( im, Size ) % im:灰度图像作为形参
%UNTITLED5 此处显示有关此函数的摘要
%   此处显示详细说明
F = fspecial('prewitt'); % F = fspecial('prewitt', Size);
y = filter2(F, im);
xy = double(im) - y;  % 进行数据转换,保证数据类型一致;高频图、轮廓、边缘
X  = double(im) + xy; % 原图+轮廓:清晰度更高
end

Matlab图像处理创新实践-实验3【图像锐化】相关推荐

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

    Matlab图像处理创新实践-实验1[图像滤波基础(1)] Matlab图像处理创新实践-实验2[图像滤波基础(2)] Matlab图像处理创新实践-实验3[图像锐化] Matlab图像处理创新实践- ...

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

    Matlab图像处理创新实践-实验1[图像滤波基础(1)] Matlab图像处理创新实践-实验2[图像滤波基础(2)] Matlab图像处理创新实践-实验3[图像锐化] Matlab图像处理创新实践- ...

  3. Matlab图像处理创新实践-实验4【综合设计大实验——GUI综合设计】

    Matlab图像处理创新实践-实验1[图像滤波基础(1)] Matlab图像处理创新实践-实验2[图像滤波基础(2)] Matlab图像处理创新实践-实验3[图像锐化] Matlab图像处理创新实践- ...

  4. 2020-2021学年——图像图形编程实践实验4_Canny图像边缘检测

    Canny图像边缘检测 实验目的 了解并掌握使用微分算子进行图像边缘检测的基本原理: 了解Canny边缘检测原理与实现,进一步理解图像锐化的实质. 实验设备 PC机.matlab2018b 实验原理 ...

  5. 2020-2021学年——图像图形编程实践实验2_图像的基本运算

    图像的基本运算 实验目的 1.了解图像的算术运算在数字图像处理中的初步应用; 2.体会图像算术运算处理的过程和处理前后图像的变化. 实验设备 PC机.matlab2018b 实验原理   图像的代数运 ...

  6. [Python图像处理] 四十二.Python图像锐化及边缘检测万字详解(Roberts、Prewitt、Sobel、Laplacian、Canny、LOG)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  7. 2020-2021学年——图像图形编程实践实验1_图像二值化

    图像二值化 实验目的 1.熟练掌握在MATLAB中如何读取图像. 2.掌握如何利用MATLAB来获取图像的大小.颜色.高度.宽度等等相关信息. 3.掌握如何在MATLAB中按照指定要求存储一幅图像的方 ...

  8. 图像的平滑与锐化代码matlab_【图像处理】轻松搞懂图像锐化

    图像锐化的目的是使模糊图像变清晰,方法可以大致分为两类:微分法.高频加重滤波法.其中微分法可以分为梯度法.Sobel算子法.Laplace算子法. 在做图像锐化时要注意,处理的图像必须有较高的信噪比, ...

  9. OpenCV图像处理 空间域图像增强(图像锐化 1 基于拉普拉斯算子)

    http://ggicci.blog.163.com/blog/static/210364096201262123236955/ OpenCV OpenCV 图像锐化 拉普拉斯算子 ( Laplaci ...

最新文章

  1. Libvirt — 4 种主机虚拟化网络模式
  2. php播放ppt代码,PHP+JavaScript幻灯片代码
  3. MobileNetV2-YoloV3
  4. MyBatis-Plus_查询返回实体对象还是map?
  5. 让AI学习AI:自动化机器学习的概述、发展和研究意义
  6. CentOS 7使用通过二进制包安装MySQL 5.7.18
  7. matlab设计一个简单图像直方图均衡的GUI程序
  8. python︱大规模数据存储与读取、并行计算:Dask库简述
  9. mysql MyISAM和InnoDB
  10. piap.excel 微软 时间戳转换mssql sql server文件时间戳转换unix 导入mysql
  11. python接口自动化13-流量回放
  12. 网络技术安全开发安卓APP
  13. 故事要从我白嫖了一个阿里云服务器说起
  14. 分形蕨( fractal fern)
  15. 还不懂shell脚本核心?这一篇就够了。
  16. 图像的灰度增强、去噪、图像增强
  17. LightOJ1012-Guilty Prince
  18. ubuntu16.04安装PCRE库
  19. 网易博客fengqing888搬家至CSDN啦
  20. IC卡解密从零开始学2 版本更新! 解密工具PN532-mfoc-mfcuk-GUI V2.1 By:lookyour

热门文章

  1. HTML字体怎么显示,教你如何用CSS来控制网页字体的显示样式
  2. mysql8.0.17压缩包安装教程_超详细的MySQL8.0.17版本安装教程
  3. java jpopupmenu事件_Java+Swing+常用事件和监听器接口
  4. mysql 创建临时表 时间类型_MySQL问答系列之什么情况下会用到临时表
  5. vs代码补全的快捷键_一款Python编程的自动补全插件神器——kite
  6. java 单例 缓存hashmap_java 、HashMap 和单例
  7. 二十七、Node.js搭建第一个Express应用框架
  8. 一个简单的线性拟合问题,到底有多少种做法
  9. ICLR 2020 | 可提速3000倍的全新信息匹配架构(附代码复现)
  10. AI Challenger 2018 机器翻译参赛总结