MATLAB的图像处理的课程设计.docx
- 文档编号:635382
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:9
- 大小:62.48KB
MATLAB的图像处理的课程设计.docx
《MATLAB的图像处理的课程设计.docx》由会员分享,可在线阅读,更多相关《MATLAB的图像处理的课程设计.docx(9页珍藏版)》请在冰豆网上搜索。
MATLAB的图像处理的课程设计
一、课程设计的目的:
综合运用MATLAB工具箱实现图像处理的GUI程序设计。
二、课程设计的基本要求
1)熟悉和掌握MATLAB程序设计方法
2)掌握MATLABGUI程序设计
3)熟悉MATLAB图像处理工具箱
4)学会运用MATLAB工具箱对图像进行处理和分析
三、课程设计的内容
要求利用MATLABGUI设计实现图像处理的图形用户界面,利用MATLAB图像处理工具箱实现以下的图像处理功能:
双击打开MATLAB7.0→File→New→GUI→单击,调整axes1大小→单击OK,调整按钮大小和颜色,修改名称→再建axes2→单击OK,调整按钮大小和颜色,修改名称→保存→View→M-fileEdit→写程序
1)图像的读取和保存。
在functionopen_Callback(hObject,eventdata,handles)后面输入如下程序
[name,path]=uigetfile('*.*','');
file=[path,name];
axes(handles.axes1);
x=imread(file); %读取图像
handles.img=x;
guidata(hObject,handles);
imshow(x); %显示图像
title('打开');
在functionsave_Callback(hObject,eventdata,handles)后面输入如下程序
[name,path]=uigetfile('*.*','');
file=[path,name];
axes(handles.axes1);
x=imread(file);
handles.img=x;
guidata(hObject,handles);
imshow(x);
imwrite(x,'new.jpg'); %保存图像
title('保存');
2)设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。
在functionliangdu_Callback(hObject,eventdata,handles)后面输入如下程序
axes(handles.axes2);
x=(handles.img);
y=imadjust(x,[0.150.9],[01]); %增亮图像
imshow(y);
title('亮度')
在functionhuidu_Callback(hObject,eventdata,handles)后面输入如下程序
axes(handles.axes2);
x=rgb2gray(handles.img); %RGB图像转换为灰度图像
imshow(x);
title('灰度')
3)设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示和保存该选择区域。
在functioncut_Callback(hObject,eventdata,handles)后面输入如下程序
axes(handles.axes2);
x=imcrop(handles.img); %截图
imshow(x);
imwrite(x,'cut.jpg'); %保存图像
title('截图');
4)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的操作,并保存,比较几种插值的效果。
在functionnearfangda_Callback(hObject,eventdata,handles)后面输入如下程序
axes(handles.axes2);
x=imresize(handles.img,2,'nearest'); %最近邻插值法放大
imshow(x);
imwrite(x,'nearfangda.jpg')
title('最近邻插值法放大');
在functionnearsuoxiao_Callback(hObject,eventdata,handles)后面输入如下程序
axes(handles.axes2);
x=imresize(handles.img,0.5,'nearest'); %最近邻插值法缩小
imshow(x);
imwrite(x,'nearsuoxiao.jpg')
title('最近邻插值法缩小');
在functiondoublefangda_Callback(hObject,eventdata,handles)后面输入如下程序
axes(handles.axes2);
x=imresize(handles.img,5,'bilinear'); %双线性插值法放大图像
imshow(x);
imwrite(x,'doublefangda.jpg');
title('双线性插值法放大');
在functiondoublesuoxiao_Callback(hObject,eventdata,handles)后面输入如下程序
axes(handles.axes2);
x=imresize(handles.img,0.5,'bilinear'); %双线性插值法缩小图像
imshow(x);
imwrite(x,'doublesuoxiao.jpg');
title('双线性插值法缩小');
5)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。
在functionzhifangtu_Callback(hObject,eventdata,handles)后面输入如下程序
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
x=imhist(handles.img); %直方图统计
x1=x(1:
10:
256);
horz=1:
10:
256;
bar(horz,x1);
%axis([02550150000]);
set(handles.axes2,'xtick',0:
50:
255);
%set(handles.axes2,'ytick',0:
2000:
15000);
set(handles.axes2,'HandleVisibility','OFF');
在functionjunheng_Callback(hObject,eventdata,handles)后面输入如下程序
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
h=histeq(handles.img); %直方图均衡
imshow(h);
%set(handles.axes2,'ytick',0:
2000:
15000);
set(handles.axes2,'HandleVisibility','OFF');
6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果。
比较去噪效果。
在functiongaussian_Callback(hObject,eventdata,handles)后面输入如下程序
axes(handles.axes2);
x=(handles.img);
y=imnoise(x,'gaussian',0,0.05); %加高斯噪声
imshow(y);
imwrite(y,'gaussian.jpg');
title('加高斯噪声')
在functionsalt_Callback(hObject,eventdata,handles)后面输入如下程序
axes(handles.axes2);
x=(handles.img);
y=imnoise(x,'salt&pepper',0.04); %加椒盐噪声
imshow(y);
imwrite(y,'salt.jpg');
title('加椒盐噪声')
在functionmedfilt_Callback(hObject,eventdata,handles)后面输入如下程序
axes(handles.axes2);
x=(handles.img);
y=imnoise(x,'salt&pepper',0.04); %加椒盐噪声
z=medfilt2(y,[55],'symmetric'); %中值滤波
imshow(z);
imwrite(z,'medfilt.jpg');
title('中值滤波');
在functionwiener_Callback(hObject,eventdata,handles)后面输入如下程序
axes(handles.axes2);
x=(handles.img);
y=imnoise(x,'gaussian',0,0.05); %加高斯噪声
z=wiener2(y,[55]); %自适应滤波
imshow(z);
imwrite(z,'wiener.jpg');
title('自适应滤波')
7)频谱处理,能够分析图像频谱,显示频谱图。
在functionpinputu_Callback(hObject,eventdata,handles)后面输入如下程序
axes(handles.axes2);
x=(handles.img);
J2=fft2(x); %傅立叶变换
K2=fftshift(J2); %转换数据矩阵
imshow(log(abs(K2)),[]); %显示频谱图
title('频谱图');
8)设计巴特沃斯低通滤波对图像进行低通滤波处理,显示结果。
在functionbutterdi_Callback(hObject,eventdata,handles)后面输入如下程序
axes(handles.axes2);
x=(handles.img);
y1=imnoise(x,'salt&pepper'); %叠加椒盐噪声
f=double(y1); %数据类型转换,MATLAB不支持图像的无符号整型的计算
g=fft2(f); %傅立叶变换
g=fftshift(g); %转换数据矩阵
[M,N]=size(g);
nn=2; %二阶巴特沃斯(Butterworth)低通滤波器
d0=50; %截止频率为50
m=fix(M/2);n=fix(N/2);
fori=1:
M
fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 图像 处理 课程设计