基于MATLAB GUI的数字图像处理

合集下载

基于MATLAB GUI图像处理系统的设计与实现

基于MATLAB GUI图像处理系统的设计与实现

基于MATLAB GUI图像处理系统的设计与实现本文将介绍一个基于MATLAB GUI的图像处理系统的设计和实现。

该系统提供了一系列常用的图像处理功能,包括图像滤波、边缘检测、图像变换、形态学处理、颜色空间转换等。

通过该系统,用户可以方便地对图像进行处理和分析。

首先,需要创建一个MATLAB GUI窗口,用于显示图像和进行图像处理。

接着,通过调用MATLAB内置的图像处理函数来实现各种功能。

下面是一些常用功能的实现方法:1.图像读取:使用imread函数来读取图像文件,并在GUI窗口中显示。

2.图像滤波:使用imfilter函数来实现各种滤波器,如高斯滤波、中值滤波等。

3.边缘检测:使用边缘检测算法(如Sobel算子、Canny算法等)来提取图像中的边缘信息。

4.图像变换:使用imresize函数来改变图像的大小,使用imrotate函数来旋转图像等。

5.形态学处理:使用imopen、imclose等形态学处理函数来对图像进行形态学分析和处理。

6.颜色空间转换:使用rgb2gray、rgb2hsv等函数来进行颜色空间的转换。

在实现这些功能时,可以使用MATLAB的图像处理工具箱中的函数,也可以自己编写函数来实现特定的处理功能。

除了提供以上的基本功能,该系统还可以通过添加菜单栏、工具栏等交互元素,以增强用户体验。

例如,添加一个“保存”菜单项,使用户可以将处理后的图像保存到本地,或添加一个“撤销”按钮,使用户可以取消上一次的处理操作等。

总之,通过将MATLAB GUI和图像处理技术相结合,我们可以很方便地开发出一个图像处理系统,并提供常用的功能和交互元素,使用户可以快速地对图像进行处理和分析。

同时,我们也可以根据实际需要,自行扩展和改进该系统,以适应更加复杂的图像处理应用场景。

基于MATLABGUI的数字图像处理

基于MATLABGUI的数字图像处理

《数字视音频技术》课程设计报告题目:基于MATLAB GUI的数字图像处理专业名称:电子信息工程班级:电信092学号:910706201姓名:XXX2012年11月基于MATLAB GUI的数字图像处理XXX中文摘要:本文以MATLAB软件的图形用户界面(GUI)开发环境和图像处理工具箱为平台设计了数字图像综合处理系统,通过编写不同的按钮代码,实现数字图像的翻转、旋转、亮度调节、对比度调节和反色、浮雕、复古、连环画等功能,操作简单且美观。

关键词:MATLAB 数字图像处理GUI1 设计内容和环境条件在MATLAB中,GUI[1]是一个包含多种对象的图形窗口,并为GUI开发提供一个方便高效的集成开发环境GUIDE。

GUIDE主要是一个界面设计工具集,MATLAB将所有GUI 支持的控件都集成在这个环境中,并提供界面外观、属性和行为响应方式的设置方法。

GUIDE将设计好的GUI保存在一个FIG文件中,同时还生成M文件框架。

其中FIG文件包括GUI图形窗口及其所有FIG文件包含序列化的图形窗口对象;M文件包括GUI设计、控制函数以及定义为子函数的用户控件回调函数。

GUI创建包括界面设计和控件编程两部分,主要步骤如下:通过设置GUIDE应用程序的选项来运行GUIDE;使用界面设计编辑器进行界面设计;编写控件行为响应控制(即回调函数)代码。

在MATLAB中,GUIDE提供多个模板来定制GUI。

这些模板均已包括相关的回调函数,可以通过修改相应的M文件函数实现指定功能。

2 方案论证本设计涉及到MATLAB中GUIDE工具的使用,通过创建菜单型界面,来实现图像的处理。

该设计打算通过编写不同的按钮代码,实现数字图像的翻转、旋转、亮度调节、对比度调节和反色、浮雕、复古、连环画等功能。

旋转是指图像绕图像原点进行任一角度的几何变换,本设计通过建立两个不同的界面,通过界面间数据传递的方法来实现对图像的不同角度的旋转。

本设计用到了MATLAB中提供的imrotate函数。

基于MATLAB GUI数字图像处理

基于MATLAB GUI数字图像处理

《数字视音频技术》课程设计报告题目:基于MATLAB GUI数字图像处理专业名称:电子信息工程班级:学号:姓名:2010年 12月基于MATLAB数字图像处理摘要:本设计简述了数字图像处理技术、MATLAB软件语言特点和图像处理工具箱;利用MATLAB的数值计算和图形处理功能,对已有的图像实现纹理映射、边缘检测和脸部识别等功能实例,介绍了应用MATLAB语言编程及其工具箱进行数字图像处理的方法,同时验证了MATLAB软件具有很强的图像处理能力。

关键词:纹理映射边缘检测脸部识别引言:MATLAB是由美国Math Work公司推出的用于数值计算和图形处理的软件,MATLAB中包含许多功能各异的工具箱,用于解决各个领域的特定问题。

它的工具箱主要有通信、控制、信号处理、系统识别等实用功能,借助这些工具箱用户可以方便的进行分析、计算和设计工作,不仅如此,MATLAB还具有语法简单、易学易用的特点,它丰富的函数使开发者无需重复编程,只要简单的调用和使用,往往在C语言中需要几十甚至上百条语句在MATLAB中只要用一两个函数就可代替。

对此,MATLAB已经成为目前使用最为广泛的工程应用软件。

一、设计目的和要求1.1设计目的1)进一步熟悉MATLAB软件的使用2)掌握MATLAB软件的程序设计方法3)掌握MATLAB软件中GUI程序设计4)熟悉MATLAB软件中图像处理工具箱的使用5)学会利用MATLAB软件中的工具箱对图像进行处理和分析1.2设计环境计算机 Windows XP操作系统 MATLAB Ver.7.11.2设计内容学习MATLAB语言及相关函数的调用,通过学习MATLAB GUI程序设计并利用MATLAB图像处理工具箱对已有的图像进行处理以达到自己想要的效果。

以下是本次设计界面和图像处理功能所能实现的功能:1)各种格式图像的打开2)指定图像打开的位置和图像处理后的位置3)将打开的全彩色图像提取它的各分量图像4)调用MATLAB的函数调用实现图像映射5)利用索贝尔算子实现图像边缘检测6)对已有的人物图像实现脸部检测二、方案论证为使界面总体上方便操作,本设计采用控件模式,借助MATLAB图像处理工具箱提供丰富的图像设计和图像处理功能进行图像处理。

基于MATLAB_GUI的数字图像处理程序设计

基于MATLAB_GUI的数字图像处理程序设计

基于MATLAB GUI的数字图像处理程序设计基于数字信号处理原理,在数字滤波器设计理论和Matlab 编程技术及其GUI 图形用户界面设计的基础上,开发了具有交互式特点的数字图像处理GUI 软件,界面操作简单方便。

MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。

它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。

根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。

MATLAB中集成了功能强大的图像处理工具箱。

由于MATLAB语言的语法特征与C语言极为相似,而且更加简单、更加符合科技人员对数学表达式的书写格式,而且可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势。

目录一、设计基本原理 (2)(一)、GUIDE 操作界面的使用方法 (2)二、GUI程序总体设计 (3)(一)MATLAB GUI程序要实现的功能: (3)三、具体设计与实现 (4)3.1、文件操作 (4)3.1.1、打开 (4)3.1.2、保存 (4)3.1.3、退出 (4)3.2、编辑 (5)3.2.1、灰度 (5)3.2.2、亮度 (6)3.2.3、截图 (7)3.2.4、缩放 (7)3.3、旋转 (9)3.3.1、上下翻转 (9)3.3.2、左右翻转 (9)3.3.3、任意角度翻转 (9)3.4、加入噪声 (10)3.5、滤波 (11)3.6、直方图统计 (12)3.7、频谱分析 (12)3.7.1、频谱图 (12)3.7.2、通过高通滤波器 (13)3.7.3、通过低通滤波器 (13)3.8、灰度图像处理 (14)3.8.1、二值图像 (14)3.8.2、创建索引图像 (15)3.9、颜色模型转换 (15)3.10、操作界面设计 (16)四、程序调试及结果分析 (16)(一)在程序设计过程中遇到的问题 (16)附录 (18)一、设计基本原理图形用于界面(GUI)是提供人机交互的工具和方法。

基于matlab数字图像处理gui设计大学论文

基于matlab数字图像处理gui设计大学论文

目录摘要 (2)一.数字图像概述 (3)1.1数字图像处理的意义 (4)1.2数字图像处理技术的发展 (5)二.matlab图像处理简介 (6)2.1 matlab简介 (6)2.2 matlab图像界面GUI简介 (7)三.数字图像处理软件的设计 (7)3.1软件的总体设计 (7)3.1.1整体界面设计 (8)3.1.2菜单栏设计 (8)3.2文件的读入与显示 (8)3.3图像的保存 (9)3.4图像的灰度处理 (9)3.5图像二值化 (10)3.6图像R直方图 (11)3.7图像G直方图 (11)3.8图像B直方图 (12)3.9直方图均衡 (12)3.10图像的腐蚀 (13)四.exe文件的生成 (14)参考文献 (15)摘要数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人们服务。

数字图像处理是一种通过计算机采用一定的算法对图形图像进行处理的技术。

数字图像处理技术已经在各个领域上都有了比较广泛的应用。

图像处理的信息量很大,对处理速度的要求也比较高。

MATLAB强大的运算和图形展示功能,使图像处理变得更加的简单和直观。

本文介绍了MATLAB语言的特点,基于MATLAB的数字图像处理环境,介绍了如何利用MATLAB及其图像处理工具箱进行数字图像处理,并通过一些例子来说明利用MATLAB图像处理工具箱进行图像处理的方法。

主要论述了利用MATLAB的GUI实现图像二值化分析等图像处理。

关键词:MATLAB,数字图像处理,GUI,二值图像AbstractDigital image processing is an emerging technology,with the development of computer hardware,real-time digital image processing has become possible due to digital image processing algorithms to appear, making it faster and faster processing speed, better for People services .Digital image processing is used by some algorithms computer graphics image processing technology. Digital image processing technology has been in various areas have a relatively wide range of applications.Image processing large amount of information on the processing speed requirement is relatively high.MATLAB powerful computing and graphics display capabilities,so that image processing becomes more simple and intuitive.This paper introduces characteristics of MATLAB language and this MATLAB-based digital image processing environment,describes how to use the MATLAB Image Processing Toolbox for its digital image processing, and through some examples to illustrate the use of MATLAB Image Processing Toolbox for image processing method.Mainly discusses the use of MATLAB for image enhancement,2-numeric image and other image processing technologies.Key words:MATLAB, digital image processing,GUI , image enhancement,2-numeric image一、数字图像处理概述1.1数字图像处理的意义数字图像处理(Digital Image Processing),就是利用数字计算机或者其他数字硬件,对从图像信息转换而得到的电信号进行某些数学运算,以提高图像的实用性。

基于MATLABGUI的数字图像处理仿真系统设计

基于MATLABGUI的数字图像处理仿真系统设计

d e mo .GU I a l s o p r o v i d e s 8 f r i e n d l y g r a p h i c a l u s e r i n t e r f a c e .I n t h i s p a p e r ,a d i g i t a l i ma g e p r o c e s s i n g s i mu l a t i o n s y s t e m i s r e —
Bas e d o n M ATLAB GU I
LI B a o f a n g XI NG Yu q i n g
( Co l l e g e o f S c i e n c e s ,He n a n Ag r i c u l t u r a l Un i v e r s i t y ,Z h e n g z h o u 4 5 0 0 0 2 )
李宝方 邢 玉清
郑州 4 5 0 0 0 2 ) ( 河南农业大学理学院


数字 图像处理理论性较强 , 学习具体 算法 时需要形 象化演示 。MAT L AB提供 了图像处理 工具箱 , 能够 快速
构 建算法 演示 ; GUI 更提供 了友好 的图形用户 交互界 面。论文依 托 MAT I A B G UI , 实 现数字 图像处 理算 法的仿 真 系统。 该 系统具 有 良好的交互性和可扩展性 。实践效果表 明 , 提高 了学生学习数字 图像处理 的兴趣和效果 。 关键 词 图像处理 ; MA TL A B;图形用户界面 ; 图像平滑 ; 仿 真
Ab s t r a c t Di g i t a l i ma g e p r o c e s s i n g c o n t a i n s s t r o n g t h e o r e t i c a l d e f i n i t i o n,a b s t r a c t i v e c o n t e n t ,S O a g o o d d e mo n s t r a t i o n i s n e e d e d i n l e a r n i n g i ma g e a l g o r i t h m. M ATI AB p r o v i d e s t h e d i g i t a l i ma g e p r o c e s s i n g t o o l b o x ,t O q u i c k l y b u i l d a l g o r i t h m

基于Matlab GUI的数字图像处理仿真平台的设计

基于Matlab GUI的数字图像处理仿真平台的设计

基于Matlab GUI的数字图像处理仿真平台的设计数字图像处理( digital image processing )是指使用数字化手段对图像进行处理、分析及解释的技术,现代生物、医学、遥感、地质、航天等领域都离不开图像处理技术。

在数字化程度越来越高的今天,数字图像处理已经成为一项重要的基础研究和实用技术。

为了更好地进行数字图像处理,需要建立一个仿真平台。

Matlab是一款强大的数值计算软件,具有强大的数学、图像和信号处理功能,因此,利用Matlab开发数字图像处理仿真平台可以提高系统的稳定性和可靠性。

Matlab中的GUI设计工具箱可以方便地创建原型界面,程序员可以在此基础上进行修改和改良,实现数字图像处理仿真平台。

首先,将Matlab图像处理工具箱中的常见图像处理方法集成到仿真平台上。

包括常见的滤波器、变换器、分割器、重建器等。

通过添加众多的工具和算法,程序员可以根据不同的应用场景选择不同的图像处理方法,实现数字图像处理仿真平台的多样性。

其次,设计仿真平台的图形用户界面。

通过使用Matlab的GUI工具箱,可以简单直观地设计出一个优雅美观的图形界面。

在界面上,用户可以进行图像的读取、打开、保存等处理操作,也可以对图像进行调整、滤波、变换等处理,最后生成处理过的新图像。

最后,加入高级功能,如多线程并发处理、分布式计算等。

控制卡、极低噪声电源等硬件设备的使用也可以改善仿真平台的性能,同时增强了仿真平台的实用性。

在设计数字图像处理仿真平台的过程中,还需要注重用户的需求和人性化设计,方便用户使用。

例如,提供详细的使用教程和使用说明,并有友好的交互设计和错误提示等。

因此,构建一个数字图像处理仿真平台不仅需要有强大的技术支持,还需要拥有用心的设计和用户体验的理解。

总的来说,数字图像处理仿真平台的设计和实现应该考虑到系统的可靠性、性能和用户体验,同时更深入地考虑到任务的需求,努力在最短的时间内提供最好的服务。

基于MATLAB语言的数字图像处理实验(GUI)

基于MATLAB语言的数字图像处理实验(GUI)

数字图像处理实验报告——基于MATLAB语言的图像处理软件姓名:班级:学号:专业:目录1.设计目的 (2)2.设计要求 (2)3.总体设计 (2)4.模块设计 (3)4.1图像的读取、保存和程序退出 (3)4.2图像转化为灰度图像 (5)4.3底片处理(反色) (6)4.4截图 (6)4.5亮度和对比度度调节 (6)4.6图像的翻转与旋转 (7)4.7添加噪声 (9)4.8平滑和锐化 (10)4.9直方图均衡化处理 (11)4.10图像的腐蚀和膨胀 (12)4.11边缘检测 (13)4.12还原和撤销 (16)5.结果分析 (17)5.1转为灰度图像 (17)5.2底片处理 (17)5.3截图 (17)5.4亮度和对比度调节 (18)5.5图像翻转与旋转 (19)5.6添加噪声、平滑和锐化 (20)5.7直方图均衡化 (23)5.8腐蚀和膨胀 (24)5.9边缘检测 (25)6.心得体会 (26)7.附录代码 (27)1.设计目的利用MATLAB的GUI程序设计一个简单实用的图像处理程序。

该程序应具备图像处理的常用功能,以满足要求。

2.设计要求设计程序有以下基本功能:1)图像的读取和保存2)图像转化为灰度图像3)底片处理(反色)4)截图5)亮度和对比度度调节6)图像的翻转与旋转7)添加噪声8)平滑和锐化9)直方图均衡化处理10)图像的腐蚀和膨胀11)边缘检测3.总体设计软件的总体设计界面布局如上图所示,主要分为2个区域:显示区域与操作区域。

显示区域:显示原图像,以及效果图,即处理前与处理后的图像。

操作区域:通过功能键实现对图像的各种处理。

在图中可见,界面左边和下方为一系列功能按键如“转为灰度图像”、“撤销”、“还原”等等;界面正中部分为图片显示部分。

设计完成后运行的软件界面如下:4.模块设计以下介绍各个功能模块的功能与实现4.1图像的读取、保存和程序退出通过Menu Editor 创建如下菜单,通过以下菜单来实现“载入图像”、“保存图像”、“退出”的功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数字视音频技术》课程设计报告题目:基于MATLAB GUI的数字图像处理专业名称:电子信息工程班级:电信 092 学号: 910706201 姓名: XXX2012年 11月基于MATLAB GUI的数字图像处理XXX中文摘要:本文以MATLAB软件的图形用户界面(GUI)开发环境和图像处理工具箱为平台设计了数字图像综合处理系统,通过编写不同的按钮代码,实现数字图像的翻转、旋转、亮度调节、对比度调节和反色、浮雕、复古、连环画等功能,操作简单且美观。

关键词:MATLAB 数字图像处理GUI1 设计内容和环境条件在MATLAB中,GUI[1]是一个包含多种对象的图形窗口,并为GUI开发提供一个方便高效的集成开发环境GUIDE。

GUIDE主要是一个界面设计工具集,MATLAB将所有GUI支持的控件都集成在这个环境中,并提供界面外观、属性和行为响应方式的设置方法。

GUIDE将设计好的GUI保存在一个FIG文件中,同时还生成M文件框架。

其中FIG文件包括GUI图形窗口及其所有FIG文件包含序列化的图形窗口对象;M文件包括GUI设计、控制函数以及定义为子函数的用户控件回调函数。

GUI创建包括界面设计和控件编程两部分,主要步骤如下:通过设置GUIDE应用程序的选项来运行GUIDE;使用界面设计编辑器进行界面设计;编写控件行为响应控制(即回调函数)代码。

在MATLAB中,GUIDE提供多个模板来定制GUI。

这些模板均已包括相关的回调函数,可以通过修改相应的M文件函数实现指定功能。

2 方案论证本设计涉及到MATLAB中GUIDE工具的使用,通过创建菜单型界面,来实现图像的处理。

该设计打算通过编写不同的按钮代码,实现数字图像的翻转、旋转、亮度调节、对比度调节和反色、浮雕、复古、连环画等功能。

旋转是指图像绕图像原点进行任一角度的几何变换,本设计通过建立两个不同的界面,通过界面间数据传递的方法来实现对图像的不同角度的旋转。

本设计用到了MATLAB中提供的imrotate函数。

图像的翻转,包括图像的上下翻转和左右翻转。

对于彩色图像,上下翻转利用flipud函数实现,左右翻转使用liplr函数实现。

而对于二值图像则通过矩阵间的关系来实现。

在进行亮度调节和对比度调节时,虽然可以以对话框的形式输入调节的比例系数,但实际效果不好,操作也不方便,故选择滚动条来调节。

图像的亮度调节即对图像明亮程度的调节,通过加大或减小每个像素的三色数来调节。

应用公式:V = V'x(1 + d),其中,(-1 ≤ d ≤ 1),式中:V为调整后颜色值,V’为原颜色值,d为亮度调整系数。

图像的对比度调节,利用函数g=127+(f-127)(1+d)加强黑到白的渐变。

在图像特效方面,所谓图像反色就是将原图像灰度值翻转,简单说来就是使黑变白,使白变黑。

假设对灰度级范围是[0,L-1]的图像求反,就是通过变换将[0,L-1]变换到[L-1,0]。

实现图像浮雕效果,一般是将图像上每个像素点与其对角线的像素点形成差值,使相似颜色值淡化,不同颜色值突出,从而产生纵深感,达到浮雕的效果。

其他图像特效的实现均是通过自编函数达成的,将在设计过程中说明。

3 设计过程3.1界面设计在命令窗口中直接输入guide命令,弹出如图1所示的窗口,在弹出的guide quick start窗口中,在Create New GUI选项卡中选择Blank GUI(default),并点击确定按钮,进入图形用户界面来设计系统静态界面,图2就是Guide提供的图形界面设计工具集【3】,在此界面下就可以利用控件组件、文本菜单、排列工具等对系统的界面进行设计。

图1 创建GUI 图2 空白界面各控件的放置如图3所示,并通过属性检查器等对各控件进行相应的设置。

图3 设计界面效果图3.2程序设计3.2.1文件右击“打开”按钮,选择“callback”跳转到回调函数的编写。

在Matlab中,创建文件打开对话框的函数是uigetfile。

其主要代码如下:[filename, pathname] = uigetfile({'*.bmp; *.jpg; *.png; *.jpeg; *.tif; *.gif', 'Image Files'}, '打开图像'); %设置显示打开的图像类型if isequal(filename, 0) || isequal(pathname, 0) %图像路径的合法性判断return;end图像的保存,同样通过对话框的形式来保存图像数据。

通过uigetfile函数选择文件名和路径,最后用imwrite函数,把数据im存到指定的文件。

其代码如下:if filterindex == 0 %选择取消,不保存图像return;else%图像另存为str = [pathname filename];imwrite(im, str);end“原图”的设置,通过再次获取原图的路径后进行读取显示,使其恢复到原图状态。

3.2.2翻转和旋转对图像进行上下、左右翻转时,必须先进行图像性质的判断(二值图像还是彩色图像),而后进行相应的翻转代码的实现,左右翻转代码如下:if (length(size(im)) ~= 3) %判断图像是否是彩色图像[height,width] = size(im);im_flip = zeros(height,width);for i = 1 : widthim_flip(:,i) = im(:,width-i+1);endim = uint8(im_flip);axes(handles.axes1);imshow(im);else%利用fliplr函数进行图像的左右变换im(:,:,1) = fliplr(im(:,:,1));im(:,:,2) = fliplr(im(:,:,2));im(:,:,3) = fliplr(im(:,:,3));axes(handles.axes1);imshow(im);end左右翻转所实现的效果如图4所示。

图4 左右翻转效果图上下翻转代码的设计同左右翻转代码的设计类似。

实现上下翻转就要把顶部的第一个像素值通过中间变量赋值给原最底部像素值所在的位置,从上到下通过中间变量依次赋值直到最底部的像素值赋值给原最顶部像素值所在的位置。

其彩色图像可利用flipud函数实现。

效果如图5所示。

图5 上下翻转效果图图像旋转,是通过两个界面间数据传递的方法来实现对图像的不同角度的旋转。

故必须建立一个新的FIG界面,并命名为“image_rotate.fig”,界面设置效果如图6所示。

主界面的“旋转”按钮通过image_rotate函数来调用图6所示界面。

点击“确认”按钮的旋转效果是利用imrotate函数实现,代码如下:angle=get(handles.edit1,'string');handles.im1=imrotate(handles.im1,str2num(angle));guidata(hObject,handles);uiresume(handles.figure1);若输入角度为45,其旋转效果图如图7所示。

图6 旋转界面设计图7 旋转效果图3.2.3 基本调节亮度调节和对比度调节是利用滚动条实现的。

亮度调节通过自编函数实现代码如下:function [INew, globalImage] = brighter(globalImage, pre, d)INew = globalImage*(d + 0.5)/(pre + 0.5);globalImage = INew;index = find(INew > 255);INew(index) = 255;INew = uint8(INew);效果如图8所示。

对比度调节的自编函数代码如下:function IContrast = imContrast(I,d);I = double(I);INew = 127 + (I-127)*(1+d);index= find(INew >255);INew(index) = 255;index= find(INew <0);INew(index) = 0;IContrast = uint8(INew);效果如图9所示。

图8 亮度调节效果图图9 对比度调节效果图3.2.4图像特效设计图像的反色效果,是通过反色回调函数的effectFunInverse函数实现的;浮雕效果是通过自编的effectFunSculpt函数实现的;复古效果是通过自编的effectFunSepia函数实现的;而连环画效果是通过自编的effectFunComic函数实现的。

整体效果如图10所示。

图10 整体效果图4 程序调试和分析在程序运行和使用的工程中,发现在开始运行此数字图像处理系统时,应该设置只能点击“打开”按钮,而禁止其他按键的触发,以免程序出错,故应把其他控件的Enable属性初始值设置为off。

在触发“打开”按钮时,要通过判断所选图片的类型,将能触发的按钮的Enable属性值设为on。

该设计经调试能稳定使用且美观大方。

唯一的不足是特效的使用是对原图的特效显示,而不是对操作后的图像进行特效变换,代码尚待改进。

5 总结在此次课程设计的过程中,更深一步领略了MATLAB软件GUI功能的强大性。

但由于对MATLAB图像处理的函数不熟悉和对一些全局变量的使用比较模糊,导致走了很多弯路,使自己了解到了自己知识储备的缺乏和实践能力的薄弱,今后更有目的地往这方面学习和训练,以期达到更好效果。

参考文献:[1]杨杰.数字图像处理及MATLAB实现,电子工业出版社,2010[2]姚敏. 数字图象处理:机械工业出版,2011[3] 施晓红.MATLAB精通GUI图形界面编程,北京大学出版社,2003附录(论文中未提到的重要代码)%定义全局变量global im;global imPath;global IInverse;global ISculpt;global ISepia;global IComic;global globalImage;%自编图像反色函数function IInverse = effectFunInverse(I)I = double(I);IInverse = 255 - I;IInverse = uint8(IInverse);%自编图像浮雕效果函数function [ISculpt] = effectFunSculpt(I)I = im2double(I);[height,width ,depth]=size(I);ISculpt = zeros(height,width);h = [ -1 0 0; 0 0 0; 0 0 1];ISculpt = imfilter(I,h,'replicate')+0.5;ISculpt = rgb2gray(ISculpt);ISculpt = uint8(255*ISculpt);%自编图像复古效果函数function ISepia=effectFunSepia(I)I = im2double(I);temp= rgb2gray(I);[height,width,depth]=size(I);ISepia = zeros(size(I));for i = 1:heightfor j=1:widthISepia(i,j,1)= (101*I(i,j,1)+197*I(i,j,2)+48*I(i,j,1))/255;ISepia(i,j,2)= (89*I(i,j,1)+176*I(i,j,2)+43*I(i,j,3))/255;ISepia(i,j,3)= (70*I(i,j,1)+137*I(i,j,2)+34*I(i,j,3))/255;endendISepia = uint8(ISepia* 255);%自编图像连环画效果函数function IComic = effectFunComic(I)I = im2double(I);[height,width,depth]=size(I);IComic = zeros(size(I));for i = 1:heightfor j=1:widthIComic(i,j,1)= (I(i,j,2)-I(i,j,3)+I(i,j,2)+I(i,j,1)) * I(i,j,1);IComic(i,j,2)= (I(i,j,3)-I(i,j,2)+I(i,j,3)+I(i,j,1)) * I(i,j,1);IComic(i,j,3)= (I(i,j,3)-I(i,j,2)+I(i,j,3)+I(i,j,1)) * I(i,j,2);endendindex = find(IComic>1);IComic(index)=1;IComic = rgb2gray(IComic);IComic = uint8(255* IComic);。

相关文档
最新文档