图像的局部填充.docx
- 文档编号:7979452
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:11
- 大小:901.71KB
图像的局部填充.docx
《图像的局部填充.docx》由会员分享,可在线阅读,更多相关《图像的局部填充.docx(11页珍藏版)》请在冰豆网上搜索。
图像的局部填充
1课程设计目的
局部区域填充是对指定区域的填充来‘擦’掉图像中的小块区域。
掌握用roifill函数对特定区域进行填充的方法,通过编程熟悉函数功能,熟悉使用MATLAB软件平台,熟悉使用图像处理工具箱,掌握实验设计过程。
通过构造各种几何图形并填充,使学生掌握图形填充的基本技能,了解区域填充算法,重点掌握种子填充算法。
本课程设计旨在利用Matlab环境及所学的数字图像处理相关理论知识和方法实现图像的局部区域填充,通过图像局部区域填充前后对比,对填充效果进行分析,最后得出结论。
2课程设计要求
利用所学的数字图像处理技术,建立实现某一个主题处理的系统,利用MATLAB软件系统来实现图像的局部区域填充,要求:
1、熟悉和掌握MATLAB程序设计方法;
2、学习和熟悉MATLAB图像处理工具箱;
3、学会运用MATLAB工具箱对图像进行处理和分析;
4、能对图像jpg格式进行打开、保存、另存、退出等功能操作;
5、利用所学数字图像处理技术知识、MATLAB软件对图像进行图像局部区域填充。
6、在程序开发时,必须清楚主要实现函数目的和作用,需要在程序书写时做适当注释说明,理解每一句函数的具体意义和使用范围;
7、掌握roipoly函数和roifill函数的功能。
8、对比原图像与使用函数后图像之间的区别。
3MATLAB简介
MATLAB是建立在向量、数组和矩阵基础上的一种分析和仿真工具软件包,包含各种能够进行常规运算的“工具箱”,如常用的矩阵代数运算、数组运算、方程求根、优化计算及函数求导积分符号运算等;同时还提供了编程计算的编程特性,通过编程可以解决一些复杂的工程问题;也可绘制二维、三维图形,输出结果可视化。
目前,已成为工程领域中较常用的软件工具包之一。
3.1MATLAB主要功能
它是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
使用它,可以较使用传统的编程语言,如C、C++等,更快的解决技术计算问题。
高级语言可用于技术计算;开发环境可对代码、文件和数据进行管理;数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等;二维和三维图形函数可用于可视化数据;各种工具可用于构建自定义的图形用户界面;各种函数可将基于MATLAB的算法与外部应用程序和语言;其应用范围非常广,包括信号和图像处理、通迅、控制系统设计、测试和测量等众多应用领域。
3.2MATLAB优势
3.2.1工作平台和编程环境
MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
3.2.2程序语言
MATLAB一个高级的矩阵语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单。
使之更利于非计算机专业的科技人员使用。
而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
3.2.3科学计算及数据处理能力
MATLAB是一个包含大量算法的集合。
其可以快捷的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和差错处理。
在通常情况下,可以用它来代替底层编程语言,如C和C++。
在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
3.2.3图形处理工能
图形处理功能MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。
同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。
另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
3.2.5模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。
一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。
目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
3.3MATLAB函数与数据类型
它提供了以下类型的函数,用于执行数学运算和数据分析:
·矩阵操作和线性代数
·多项式和内插
·傅立叶分析和筛选
·数据分析和统计
·优化和数值积分
MATLAB可对包括双精度浮点数、单精度浮点数和整型在内的多种数据类型进行运算。
附加的工具箱提供了专门的数学计算函数,用于包括信号处理、优化、统计、符号数学、偏微分方程求解以及曲线拟合在内的各个领域。
MATLAB中有15种基本数据类型,主要是整型、浮点、逻辑、字符、日期和时间、结构数组、单元格数组以及函数句柄等。
4设计方案
4.1设计过程
利用MATLAB图像处理工具箱,设计自己的Photoshop,实现图像局部区域填充。
要求:
按照软件工程方法,根据需求进行程序的功能分析和界面设计,给出设计详细说明。
然后按照自己拟定的功能要求进行程序设计和调试。
1)图像的读取和保存。
2)对图像指定区域的选择。
3)把RGB图像转换成灰度图像。
4)通过解边界的拉普拉斯方程,指定填充特定区域。
5)通过roipoly函数对图像进行处理。
6)编写程序,通过roifill,以实现图像局部区域填充。
7)‘擦’掉一个图像指定区域的小块区域。
8)设计图形用户界面,让用户能够清晰的感受到两图像之间的区别,显示和保存该选择区域。
4.2设计方法
4.2.1图像局部区域的选择
多边形选择方法:
用roipoly函数设定图像中的多边形区域,该函数返回与输入图像大小一致的二值图像BW,选中的区域值为1,其余的部分值为0.其语法格式为:
BW=roipoly(I,c,r)
其功能是:
用向量c.r指定多边形各角点的X.Y轴的坐标。
4.2.2特定区域填充
MATLAB图像处理工具箱中提供的roifill函数对于特定区域进行填充,其语法格式为:
J=roifill(I,c,r)
其功能是:
填充由向量c.r指定的多边形,c和r分别为多边形各顶点的X.Y坐标。
它是通过解边界的拉普拉斯方程,利用多边形边界的点的灰度平滑的插值得到多边形内部的点。
通常可以利用指定区域的填充来‘擦’掉图像中的小块区域。
5程序设计
5.1根据指定坐标选择六边形
实现程序代码的说明:
%用imread函数来读入格式为0000.jpg的图像
%设定六边形各顶点的X.Y坐标
%用roipoly函数对图像进行处理
%用inshow函数来显示原始图像与roipoly函数对特定区域进行选择后的图像
用roipoly函数用于设定图像中的多边形区域实现程序代码如下:
I=imread('D:
\matlab\bin\000.jpg');
c=[222272300272222194];
r=[21217512112175];
BW=roipoly(I,c,r);
figure
(1),imshow(I)
figure
(2),imshow(BW)
5.2图像的局部区域填充
实现程序代码的说明:
%用imread函数来读入格式为jintian.jpg的图像
%把彩色图像转换成灰度图像
%设定多边形各顶点的X.Y坐标
%用roifill函数对图像进行处理
%用inshow函数来显示原始图像与roifill函数对特定区域进行填充后的图像
用roifill函数用于特定区域进行填充实现代码程序如下:
a=imread('D:
\matlab\bin\jintian.jpg');
I=rgb2gray(a);
c=[200250278248199172];
r=[21217512112175];
J=roifill(I,c,r);
subplot(1,2,1),imshow(I)
figure,subplot(1,2,2),imshow(J)
6仿真结果
6.1指定区域仿真结果
(1)原始图像:
(2)指定的坐标选择六边形
6.2图像局部区域填充仿真结果
(1)原始图像
(2)roifill函数对特定区域填充后的图像
7结论
通过对本次课程设计熟悉的掌握了roifill函数的运用,掌握了对特定区域的填充,根据指定的坐标选择六边形。
把理论知识熟悉的运用到具体的实践中。
本课程设计主要介绍了数字图像的理论知识及运用MATLAB来实现对具体区域填充的方法和研究。
基于数字图像局部区域的填充,介绍了如何利用图像处理工具MATLAB来进行。
在图像处理过程中选择区域起到控制操作范围的作用,利用选择区域可以按照不同的形式来选定图像的局部区域进行调整或效果处理,同时还可以保证选择区域以外的部分不会受到影响。
随着计算机处理能力的不断增强,数字图像处理学科在飞速发展的同时,
也越来越广泛地向许多其他学科快速交叉渗透,使得图像作为信息获取以及信
息的利用等方面也变得越来越重要。
目前数字图像处理的应用越来越广泛,已
经渗透到工业、医疗保健、航空航天、军事等各个领域,在国民经济中发挥越
来越大的作用。
如伪彩色增强应用在金相分析、医学影像、岩土图像、遥感应
用等。
假彩色增强:
主要表现在医学领域中如:
肾动脉造影上的应用、乳腺肿
瘤诊断上的应用等。
参考文献
[1]龚声蓉,刘纯平,王强等编著,数字图像处理与分析[M].—北京:
清华大学出版社,2006.7,pp:
46-47.81-84
[2]曹茂永主编,数字图像处理[M].北京:
北京大学出版社,2007.9,pp:
52-66.
[3]朱虹主编,数字图像处理[M].北京:
科学出版社,2005,pp:
167-180.
[4]于成波编著,数字图像处理及MATLAB实现[M].—重庆:
重庆大学出版社,2003.6,pp:
283-298.
[5]葛哲学.精通MATLAB[M].电子工业出版社,2008:
2-8.
[6]张圣勤.MATLAB7.0实用教程[M].机器工业出版社,2006:
90-118.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 局部 填充
![提示](https://static.bdocx.com/images/bang_tan.gif)