数字图像处理GUI界面设计说明.docx
- 文档编号:6445715
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:13
- 大小:635.10KB
数字图像处理GUI界面设计说明.docx
《数字图像处理GUI界面设计说明.docx》由会员分享,可在线阅读,更多相关《数字图像处理GUI界面设计说明.docx(13页珍藏版)》请在冰豆网上搜索。
数字图像处理GUI界面设计说明
第一章设计任务及要求
1.1设计依据
在掌握数字图像处理基本算法的基础上,利用MATLAB软件设计具有指定功能的
1.2课程设计容
设计一个或包含子界面的图形用户界面,该界面可以读入任意格式的图片并在一个图片窗口中显示,同时包含下拉列表或按钮等控件,用户可以从中选择不同的图像增强功能及参数,例如:
对比度调节,灰度变换,图像锐化,图像滤波等功能,读入的图片会根据选择在新的图片窗口中显示不同的处理结果。
1.3课程设计要求
(1)要求每个同学独立完成设计任务。
(2)课程设计说明书封面格式要求见《课程设计说明书格式要求》。
(3)课程设计的说明书要求简洁、通顺,图像表达容完整、清楚、规。
(4)课程设计说明书要求:
(5)说明题目的设计原理和思路、采用方法及设计流程。
(6)可采用图表或文字对图形用户界面各子模块的功能以及各子模块之间的关系做较详细的描述。
(7)详细说明MATLAB代码的编写流程。
(8)采用图像及文字详细说明各功能的演示结果。
(9)界面功能自行增加,涉及的算法越多越好。
第2章设计原理
2.1设计题目分析
课程设计题目要求运用所学的图像增强技术知识设计一个GUI界面程序,通过界面控件对给定图像完成各种图像增强的功能。
功能中包含一系列图像增强方式,有对比度调节,灰度变换,图像锐化,图像滤波等功能。
在菜单栏中还有图像的打开及保存等一系列的按钮。
2.2设计原理
通过学习数字图像处理这一门学科,以及Matlab这一软件。
制作图像处理GUI人机交换界面,以方便使用。
设计中,通过界面上的控件操作对图像进行简单的处理,而控件通过后台代码实现各种不同的操作功能。
在界面中,人们能看到的控件分为三大类:
图像显示模块,功能控件模块,以及菜单栏模块。
(1)图像显示模块:
打开原图像即没有处理过的图像会在第一个图像显示窗口中显示,第二个窗口为显示通过一定处理后的图像。
图1显示模块
(2)功能控件模块:
打开与图像后,通过功能控件对对象进行简单的处理操作,使得通过不同控件操作后的图像在第二个显示框中显示。
创建完成界面效果图如下。
图2创建完成后的GUI界面
第3章设计实现
3.1菜单栏编辑
通过MenuEditor
创建如下菜单,通过以下菜单来打开图像即保存图像功能按键实现图像的读取与保存。
图3菜单栏编辑
图4打开文件图像
该菜单按钮是通过利用matlab中“uigetfile”、“imread”“imshow”实现图像文件的读取与显示:
主程序:
[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'载入图像');
ifisequal(filename,0)|isequal(pathname,0)
errordlg('没有选中文件','出错');
return;
else
file=[pathname,filename];
globalS%设置一个全局变量S,保存初始图像路径,以便之后的还原操作
S=file;
x=imread(file);
set(handles.axes1,'HandleVisibility','ON');
axes(handles.axes1);
imshow(x);
set(handles.axes1,'HandleVisibility','OFF');
axes(handles.axes2);
imshow(x);
handles.img=x;
guidata(hObject,handles);
End
利用“uiputfile”、“imwrite”函数实现图像文件的保存。
图5图像保存
主程序如下:
functionsave_Callback(hObject,eventdata,handles)
%hObjecthandletosave(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
[sfilename,sfilepath]=uiputfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'保存图像','untitled.jpg');
if~isequal([sfilename,sfilepath],[0,0])
sfilefullname=[sfilepath,sfilename];
imwrite(handles.img,sfilefullname);
else
msgbox('你按了取消键','保存失败');
end
3.2控件及代码的加入
3.2.1GUI窗口的创建
打开Matlab后,在命令行里面敲入命令“Guide”后按回车键或是在菜单栏“File”、“New”、“Gui”创建GUI界面,然后弹出一个对话框,用鼠标单击“OK”,即可创建一个新的GUI界面。
打开界面效果图如下:
图6创建GUI界面
图7创建GUI界面
3.2.2控件按钮的创建
在创建GUI界面完成后,在界面的左边有一系列的控件按钮,只需要用鼠标点击,然后在界面中再次单击及拖动鼠标即可,大小及位置在界面中更改。
这样就可以创建所需要的控件按钮。
效果图如下:
图8按钮的创建
创建按钮完成以后,双击按钮可以更改控件的属性。
效果图如下:
图9按钮属性窗口
3.2.3控件代码加入
创建控件按钮完成以后,鼠标右击控件按钮,选择“Viewcallbacks”“Callback”单击,出现.M文件的程序代码,在控件按钮代码“functionpushbutton1_Callback(hObject,eventdata,handles)”的下方加入已经改好的控件功能代码,后单击菜单栏上面的“
”即可运行程序。
图10.M文件代码
通过这样的方法可以加入多个功能控件,实现不同的图像处理功能的GUI界面。
3.4图像灰度处理
通过界面上的灰度处理控件对彩色图像进行灰度处理,使得原来本是彩色的图片通过处理后在第二个显示框中变成灰色图像。
图11灰度处理
主要程序:
functionpushbutton6_Callback(hObject,eventdata,handles)
globalT
axes(handles.axes2);
13/50
T=getimage;
x=rgb2gray(handles.img);
imshow(x);
handles.img=x;
guidata(hObject,handles);
该程序是利用rgb2gray(X)函数对其他图像进行灰度图像的转化。
3.5亮度调节
通过“载入图像”控件或是菜单栏中的“打开”菜单将图像在GUI界面上的第一个图像显示框中打开,然后按下控件“亮度调节”,会弹出一个所需要调节亮度的值的对话框,在里面输入数值以后,在第二个显示框中会显示出通过“亮度调节”控件处理后的图片。
图12输入亮度值
图13亮度对比前后
主要程序:
functionpushbutton5_Callback(hObject,eventdata,handles)
globalT
axes(handles.axes2);
T=getimage;
prompt={'亮度调节'};
defans={'1'};
p=inputdlg(prompt,'input',1,defans);
9/50
p1=str2num(p{1});
y=imadjust(handles.img,[],[],p1);
imshow(y);
handles.img=y;
guidata(hObject,handles);
程序通过:
defans={'1'};p=inputdlg(prompt,'input',1,defans);定义亮度对话框,而通过函数语句
p1=str2num(p{1});
y=imadjust(handles.img,[],[],p1);
对图像进行亮度的转换。
3.6底片处理
通过“载入图像”控件或是菜单栏中的“打开”菜单将图像在GUI界面上的第一个图像显示框中打开,然后按下控件“底片处理”按钮操作,对图像进行图像的底片处理,效果图如下。
图14底片处理前后对照
主程序:
functionpushbutton9_Callback(hObject,eventdata,handles)
axes(handles.axes2);
T=getimage;
f=imcomplement(handles.img);%图像取反
imshow(f);
handles.img=f;
guidata(hObject,handles);
程序主要通过函数f=imcomplement(handles.img);实现图像的取反功能。
3.7直方图均衡化
直方图均衡化的基本思想就是把原始图像不均衡的直方图变换为均匀的分布,这样就增加了灰度值的动态围,从而达到增强图像整体对比度的效果。
经过GUI界面处理前后的照片对比效果如下:
图15直方图均衡化
主程序:
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
h=histeq(handles.img);%直方图均衡化
imshow(h);
第4章结果分析及总结
通过几周的时间学习GUI界面的制作以及所学课程知识的再次学习,完成了此次课程设计。
在过程当中,软件测试基本成功,完成课题所要求的图像增强功能的实现。
但一些功能只支持灰度图像的处理。
还有的功能没有实现,我自己认为是程序有错误,但是检查很久都没有检查出来,还有一个很大的问题就是当程序运行以后回头在看控件代码时,总是会有乱码出现,在程序当中改过来以后还是会自动的改为乱码,这一点也是我没有明白的原因。
通过这次课程设计,使我对matlab的使用有了进一步的了解和熟悉。
当我第一次拿到此次的课题时,感到有些无所适从。
虽然,曾经学习过matlab的课程,但由于对matlab的学习更多的只是停留在理论上的学习,在课时的试验也只是简单的基础性试验,所以对matlab实际运用不是很熟练。
虽然对课题感到很懵懂,但是通过在网上学习视频以后,我开始找到了解决问题的路径。
我选择的是“利用matlab的GUI程序设计一个简单实用的图像处理程序”这一课题。
本课题的重点是句柄的使用、GUI的使用以及matlab中相关图像处理函数使用。
为此,,我利用课余时间,重新复习了matlab教材,专门借阅了利用matlab进行图像处理的相关教程,通过索引网络上的相关资料,为课设做了较为充分的准备。
在参考了相关材料及源程序,我对自己要做的课设容有了进一步的了解,并对matlab的使用有了更深的体会。
总体来说,此次的课程设计,还是较为满意的。
它不但鞭策着我去巩固matlab的基础理论知识,还提高了我对matlab的实际操作运用,使得理论与实践相结合,为进一步学习matlab打下坚实的基础;同时,在实践的工程中,也让我体会到一种努力付出并得到回报的满足感觉。
第5章参考文献
[1]德丰,数字图像处理MATLAB详解[J].电子工业2010.7(MATLAB仿真与应用系列丛书)
[2]朱来东,廉小亲,江远志.小波变换在信号降噪中的应用及MATLAB实现[J].北京工商大学学报(自然科学版),2009,27
(2):
46-49.
[3]治真, 萍,选辉,等1小波变换及其MATLAB工具的应用[M]1北京:
地震,2001.
[4]洪岚基于DSP的自适应线性滤波器的设计与实现[J].《科技》2008,16.
第6章附录
程序:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 GUI 界面设计 说明