1、MATLAB 应用课程设计一、课程设计的目的综合运用 MATLAB 工具箱实现图像处理的 GUI 程序设计。二、课程设计的基本要求1) 熟悉和掌握 MATLAB 程序设计方法2) 掌握 MATLAB GUI 程序设计3) 熟悉 MATLAB 图像处理工具箱4) 学会运用 MATLAB 工具箱对图像进行处理和分析三、课程设计的内容要求利用 MATLAB GUI 设计实现图像处理的图形用户界面,利用 MATLAB 图像处理工具箱实现以下的图像处理功能:双击打开 MATLAB 7.0FileNewGUI单击 axes1 按钮调整 axes1大小单击 OK 按钮调整按钮大小和颜色,修改名称。1) 图像
2、的读取和保存。在 function open_Callback(hObject, eventdata, handles)后面输入如下程序:name,path=uigetfile(*.*);file=path,name;% axes(handles.axesl);x=imread(file); %读取图像handles.img=x;guidata(hObject,handles); imshow(x); %显示图像title(打开 );在 function save_Callback(hObject, eventdata, handles)后面输入如下程序name,path=uigetfile(
3、*.*,);file=path,name;x=imread(file);handles.img=x;guidata(hObject,handles);imshow(x);imwrite(x,new.jpg); %保存图像title(保存 );2) 设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。在 function liangdu_Callback(hObject, eventdata, handles)后面输入如下程序x=(handles.img);y=imadjust(x,0.15 0.9,0 1); %增亮图像imshow(y);title(亮
4、度 )在 function pushbutton4_Callback(hObject, eventdata, handles)后面输入如下程序x=rgb2gray(handles.img); %RGB 图像转换为灰度图像imshow(x);title(huidu)3) 设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示和保存该选择区域。在 function jietu_Callback(hObject, eventdata, handles)后面输入如下程序x=imcrop(handles.img); %截图imshow(x);imwrite(x,cut.jpg); %保存图像titl
5、e(jietu);4) 编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的操作,并保存,比较几种插值的效果。在 function nearfangda_Callback(hObject, eventdata, handles)后面输入如下程序x=imresize(handles.img,2,nearest); %最近邻插值法放大imshow(x);imwrite(x,nearfangda.jpg);title(最近邻插值法放大);在 function nearsuoxiao_Callback(hObject, eventdata, handles)后面输入如下
6、程序x=imresize(handles.img,0.5,nearest); %最近邻插值法缩小imshow(x);imwrite(x,nearsuoxiao.jpg);title(最近邻插值法缩小);在 function doublefangda_Callback(hObject, eventdata, handles)后面输入如下程序x=imresize(handles.img, 5,bilinear); %双线性插值法放大图像imshow(x);imwrite(x, doublefangda.jpg);title(双线性插值法放大);在 function doublesuoxiao_Ca
7、llback(hObject, eventdata, handles)后面输入如下程序x=imresize(handles.img, 0.5,bilinear); %双线性插值法放大图像imshow(x);imwrite(x, doublesuoxiao.jpg);title(双线性插值法缩小);5) 图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。function zhifangtu_Callback(hObject, eventdata, handles)set(handles.axes1,HandleVisibility,ON);x=imhist(handles.
8、img(:,:); %直方图统计x1=x(1:10:256);horz=1:10:256;bar(horz,x1);set(handles.axes1,xtick,0:50:255);set(handles.axes1,HandleVisibility,OFF);在 function junheng_Callback(hObject, eventdata, handles)后面输入如下程序set(handles.axes1,HandleVisibility,ON);h=histeq(handles.img(:,:); %直方图均衡imshow(h);set(handles.axes1,Hand
9、leVisibility,OFF);6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果,比较去噪效果。在 function gaussian_Callback(hObject, eventdata, handles) 后面输入如下程序x=(handles.img);y=imnoise(x,gaussian,0,0.05); %加高斯噪声imshow(y);imwrite(y,gaussian.jpg);title(jiagaosizaosheng);在 function jiaoyan_Callback(hObject, eventdata, handles) 后面输入如下程序x=
10、(handles.img);y=imnoise(x,salt %加椒盐噪声imshow(y);imwrite(y,salt.jpg);title(jiajiaoyanzaosheng);在 function medfilt_Callback(hObject, eventdata, handles) 后面输入如下程序x=(handles.img);y=imnoise(x,salt %加椒盐噪声z=medfilt2(y(:,:),5 5,symmetric); %中值滤波imshow(z);imwrite(z,medfilt.jpg);title(zhongzhilvbo);在 function wiener_Callback(hObject, eventdata, handles) 后面输入如下程序x=(handles.img);y=imnoise(x,gaussian,0,0.05); %加椒盐噪声z=wiener2(y(:,:),3 3); %自适应滤波imshow(z);imwrite(z,medfilt.jpg);title(zhongzhilvbo)要求写出实验具体步骤并对实验结果有一定的分析。给出程序的最终界面。提交内容包括:word 说明文档、.fig 文件、 .m 文件和程序中所用图片 (.jpg 格式)。