一、课程设计的目的。
综合运用matlab工具箱实现图像处理的gui程序设计。
二、课程设计的基本要求。
1) 熟悉和掌握matlab程序设计方法。
2) 掌握matlab gui程序设计。
3) 熟悉matlab图像处理工具箱。
4) 学会运用matlab工具箱对图像进行处理和分析。
三、课程设计的内容。
要求利用matlab gui设计实现图像处理的图形用户界面,利用matlab图像处理工具箱实现以下的图像处理功能:
双击打开matlab 7.0——file——new——gui——单击axes1按钮——调整axes1大小——单击ok按钮——调整按钮大小和颜色,修改名称。
1) 图像的读取和保存。
在function open_callback(hobject, eventdata, handles)后面输入如下程序:
name,path]=uigetfile('*
file=[path,name];
axes(
x=imread(file); 读取图像。
guidata(hobject,handles);
imshow(x); 显示图像。
title('打开');
在function s**e_callback(hobject, eventdata, handles)后面输入如下程序。
name,path]=uigetfile
file=[path,name];
x=imread(file);
guidata(hobject,handles);
imshow(x);
imwrite(x,''保存图像。
title('保存');
2) 设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。
在function liangdu_callback(hobject, eventdata, handles)后面输入如下程序。
x=(y=imadjust(x,[0.15 0.9],[0 1]);增亮图像。
imshow(y);
title('亮度')
在function pushbutton4_callback(hobject, eventdata, handles)后面输入如下程序。
x=rgb2gray( %rgb图像转换为灰度图像。
imshow(x);
title('huidu')
3) 设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示和保存该选择区域。
在function jietu_callback(hobject, eventdata, handles)后面输入如下程序。
x=imcrop( %截图。
imshow(x);
imwrite(x,'保存图像。
title('jietu');
4) 编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的操作,并保存,比较几种插值的效果。
在function nearfangda_callback(hobject, eventdata, handles)后面输入如下程序。
x=imresize('nearest');最近邻插值法放大。
imshow(x);
imwrite(x,''
title('最近邻插值法放大');
在function nearsuoxiao_callback(hobject, eventdata, handles)后面输入如下程序。
x=imresize('nearest');最近邻插值法缩小。
imshow(x);
imwrite(x,''
title('最近邻插值法缩小');
在function doublefangda_callback(hobject, eventdata, handles)后面输入如下程序。
x=imresize( 5,'bilinear');双线性插值法放大图像。
imshow(x);
imwrite(x, '
title('双线性插值法放大');
在function doublesuoxiao_callback(hobject, eventdata, handles)后面输入如下程序。
x=imresize( 0.5,'bilinear');双线性插值法放大图像。
imshow(x);
imwrite(x, '
title('双线性插值法缩小');
5) 图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。
function zhifangtu_callback(hobject, eventdata, handles)
set('handlevisibility','on');
x=imhist(直方图统计。
x1=x(1:10:256);
horz=1:10:256;
bar(horz,x1);
set('xtick',0:50:255);
set('handlevisibility','off');
在function junheng_callback(hobject, eventdata, handles)后面输入如下程序。
set('handlevisibility','on');
h=histeq(直方图均衡。
imshow(h);
set('handlevisibility','off');
6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果,比较去噪效果。
在function gaussian_callback(hobject, eventdata, handles) 后面输入如下程序。
x=(y=imnoise(x,'gaussian',0,0.05); 加高斯噪声。
imshow(y);
imwrite(y,''
title('jiagaosizaosheng');
在function jiaoyan_callback(hobject, eventdata, handles) 后面输入如下程序。
x=(y=imnoise(x,'salt & pepper',0.08); 加椒盐噪声。
imshow(y);
imwrite(y,''
title('jiajiaoyanzaosheng');
在function medfilt_callback(hobject, eventdata, handles) 后面输入如下程序。
x=(y=imnoise(x,'salt & pepper',0.04); 加椒盐噪声。
z=medfilt2(y(:,5 5],'symmetric');中值滤波。
imshow(z);
imwrite(z,''
title('z*******lvbo');
在function wiener_callback(hobject, eventdata, handles) 后面输入如下程序。
x=(y=imnoise(x,'gaussian',0,0.05); 加椒盐噪声。
z=wiener2(y(:,3 3自适应滤波。
imshow(z);
imwrite(z,''
title('z*******lvbo')
四、课程设计体会。
MATLAB课程设计
1 求被控对象传递函数g s 的matlab描述。num 789 6312 11835 den 1 14 56 64 0 0 gs tf num,den transfer function 789 s 2 6312 s 11835 s 5 14 s 4 56 s 3 64 s 2 2 求被控对象脉冲...
MATLAB课程设计
课程设计。题目 matlab计算器。姓名 班级 学院 专业 完成时间。1总体设计。该计算器程序主要是matlab来制作,界面主要由四个静态文本框 21个运算按钮和两个动态文本框组成。实现的运算功能有四则运算 加 减 乘 除。而且添加了括号使人们使用时更加简单。这些计算功能主要调用了matlab的自定...
MATLAB课程设计
matlab课程设计。如图所示,为测量系统的示意图,它由两个能相互转动的连杆,角度编码器和滚轮等组成。o1为固定点,o2点为转动点,o3点为滚轮的中心,连杆的有效长度分别为l1和l2。任一位置时,连杆1相对于某基准位置的角度为 1,两连杆的相对角度为 2。其中对于 1,取垂直方向为基准线,在基准线左...