MATLAB中GUI在图像处理应用中的设计包括各种算法.docx

上传人:b****5 文档编号:3195063 上传时间:2022-11-20 格式:DOCX 页数:49 大小:4.62MB
下载 相关 举报
MATLAB中GUI在图像处理应用中的设计包括各种算法.docx_第1页
第1页 / 共49页
MATLAB中GUI在图像处理应用中的设计包括各种算法.docx_第2页
第2页 / 共49页
MATLAB中GUI在图像处理应用中的设计包括各种算法.docx_第3页
第3页 / 共49页
MATLAB中GUI在图像处理应用中的设计包括各种算法.docx_第4页
第4页 / 共49页
MATLAB中GUI在图像处理应用中的设计包括各种算法.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

MATLAB中GUI在图像处理应用中的设计包括各种算法.docx

《MATLAB中GUI在图像处理应用中的设计包括各种算法.docx》由会员分享,可在线阅读,更多相关《MATLAB中GUI在图像处理应用中的设计包括各种算法.docx(49页珍藏版)》请在冰豆网上搜索。

MATLAB中GUI在图像处理应用中的设计包括各种算法.docx

MATLAB中GUI在图像处理应用中的设计包括各种算法

 

用MATLAB进行图像处理算法的界面设计

 

学院:

信息技术学院

班级:

电子信息工程10级

组内成员:

刘立鹏梁惠雯毕忠祥

 

1.设计目的…………………………………………………3

2.题目分析…………………………………………………3

3.总体设计…………………………………………………4

4.具体设计…………………………………………………5

5.结果分析…………………………………………………30

6.程序清单…………………………………………………31

7.参考文献…………………………………………………47

 

1、设计目的:

综合运用MATLAB工具箱实现图像处理的GUI程序设计,利用MATLAB图像处理工具箱,设计和实现自己的Photoshop。

2、题目分析

利用matlab的GUI程序设计一个简单实用的图像处理程序。

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

现设计程序有以下基本功能:

1)图像的读取和保存。

2)设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。

3)设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示和保存该选择区域。

4)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的操作,并保存,比较几种插值的效果。

5)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。

6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果。

7)额外功能。

 

3、总体设计

图一

软件的总体设计界面布局如上图所示,主要分为2个部分:

显示区域与操作区域。

显示区域:

显示载入原图,以及通过处理后的图像。

操作区域:

通过功能键实现对图像的各种处理。

在截图中可见,左部为一系列功能按键如“还原”、“撤销”、“截图”等等;界面正中部分为图片显示部分,界面中下方为系列功能切换选择组。

设计完成后运行的软件界面如下:

图二

与图一先比,运行后的界面更为简洁。

利用“编辑”菜单可调出相应的功能键。

例如:

4、具体设计

现介绍各个功能模块的功能与实现。

4.1图像的读取和保存。

(1)利用“文件”菜单中的“打开”、“保存为…”分别实现图片的读取与保存。

利用matlab中“uigetfile”、“imread”“imshow”实现图像文件的读取与显示:

functionopenfile_Callback(hObject,eventdata,handles)

%hObjecthandletoopenfile(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

[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

程序关键部分:

通过[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'载入图像')选择相应路径打开的图像;通过file=[pathname,filename];x=imread(file);读取选中的图像;最后,通过imshow(x)在显示区域上显示图像。

 

(2)图像保存。

利用“uiputfile”、“imwrite”函数实现图像文件的保存。

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

程序关键部分:

通[sfilename,sfilepath]=uiputfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'保存图像文件','untitled.jpg')选择图像文件保存的路径与格式;然后,通过sfilefullname=[sfilepath,sfilename];

imwrite(handles.img,sfilefullname);实现对图像的保存。

(3)程序的退出。

functionexit_Callback(hObject,eventdata,handles)

%hObjecthandletoexit(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

clc;

closeall;

close(gcf);

clear;

4.2对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。

运行程序后,通过“编辑”菜单中的“常用处理”选中“亮度调节”

在显示出相应的功能键后,通过载入读取图像,比并进行处理,效果如下:

亮度处理前:

亮度处理后:

实现程序段如下:

%---Executesonbuttonpressinradiobutton12.

functionradiobutton12_Callback(hObject,eventdata,handles)

%hObjecthandletoradiobutton12(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%Hint:

get(hObject,'Value')returnstogglestateofradiobutton12

globalT

axes(handles.axes2);

T=getimage;

prompt={'调整倍数'};

defans={'1'};

p=inputdlg(prompt,'input',1,defans);

p1=str2num(p{1});

y=imadjust(handles.img,[],[],p1);%亮度调节

imshow(y);

handles.img=y;

guidata(hObject,handles);

 

对比度处理前:

对比度处理后(增强3倍):

对比度减弱1.5倍后:

实现程序段如下:

functionuipanel10_SelectionChangeFcn(hObject,eventdata,handles)

%hObjecthandletouipanel10(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

globalT

str=get(hObject,'string');

axes(handles.axes2);

switchstr

case'增强'

T=getimage;

prompt={'输入参数:

'};

defans={'1'};

p=inputdlg(prompt,'input',1,defans);

p1=str2num(p{1});

f=immultiply(handles.img,p1);

imshow(f);

handles.img=f;

guidata(hObject,handles);

case'减弱'

T=getimage;

prompt={'输入参数:

'};

defans={'1'};

p=inputdlg(prompt,'input',1,defans);

p1=str2num(p{1});

f=imdivide(handles.img,p1);

imshow(f);

handles.img=f;

guidata(hObject,handles);

end

该程序段主要通过f=immultiply(handles.img,p1);p=inputdlg(prompt,'input',1,defans);

分别实现图像对比度的增强与减弱。

4.3用鼠标选取图像感兴趣区域,显示和保存该选择区域。

通过imcrop(x)函数来实现对图片某一区域的截取,截取的图片在右框中显示。

结合“保存为…”,可把截图处理后的图片保存在指定路径。

实现程序段如下:

%---Executesonbuttonpressinpushbutton1.

functionpushbutton1_Callback(hObject,eventdata,handles)

%hObjecthandletopushbutton1(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1