用matlab实现图像灰度变换课程设计讲解Word格式文档下载.docx
《用matlab实现图像灰度变换课程设计讲解Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《用matlab实现图像灰度变换课程设计讲解Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。
它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。
根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或变成以完成各自的计算。
MATLAB中集成了功能强大的图像处理工具箱。
由于MATLAB语言的语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式,而且这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势。
MATLAB是一种以矩阵运算为基础的交互式程序语言,能够满足科学、工程计算和绘图的要求,与其它计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。
我们学习掌握MATLAB,也可以说是在科学工具上与国际接轨。
一、课程设计目的……………………………………………2
二、设计任务及内容…………………………………………2
三、课题设计实验条件………………………………………3
四、涉及知识…………………………………………………3
五、具体设计过程及调试……………………………………4
5.1、图像的读入和显示
5.1.1、打开图像……………………………………4
5.1.2、显示原图像…………………………………5
5.1.3、图像灰度处理………………………………7
5.1.4、显示灰阶后图像……………………………8
5.2、直方图均衡化
5.2.1、生成直方图………………………………...10
5.2.2、直方图均衡化……………………………...12
5.3、灰度变换
5.3.1、线性变换…………………………………...9
5.3.2、分段线性变换……………………………...9
5.3.3、非线性变换………………………………...9
六、心得体会………………………………………………….17
七、参考文献………………………………………………….18
八、程序清单………………………………………………….19
一、设计目的
本次课程设计旨在提升学生的动手能力,加强并巩固对专业理论知识的理解和实际运用。
通过使用MATLAB软件,根据所分配的课题,锻炼我们的自学能力,提高我们实践能力,为毕业设计做铺垫。
1、熟悉并掌握应用MATLAB语言相关知识和程序设计方法。
2、掌握MATLABGUI程序设计
3、熟悉MATLAB图像处理工具箱
4、学会运用MATLAB工具箱对图像进行处理和分析
二、设计任务及内容
利用MATLABGUI设计实现图像处理的图形用户界面,利用MATLAB图像处理工具箱实现以下的图像处理功能:
1.采用matlabGuide设计图像界面;
可以读入并显示图像,设计实现下列功能的按钮,点击相应的按钮可以实现相应的功能。
2.自选图像一幅,进行线性变换、分段线性变换和非线性变换,对比源图像与变换后的图像特征变换,体会该变换的特点。
3.自选图像一幅,生成并绘制图像的直方图。
4.直方图均衡化方法研究,比较变换前后图像的直方图。
三、题目研究的实验条件
计算机、相关书籍、MATLAB7以上版本
四、课题所涉及知识面
数字图像处理和MATLAB软件知识
五、具体设计过程及调试
5.1、图像的读入和显示
采用matlabGuide设计图像界面;
图形界面
5.1.1、打开图像
从计算机中查找要打开的图片
5.1.2、显示原图像
把选中的图片显示在第一显示区
5.1.3、图像灰度处理
利用灰度处理函数rgb2gray()对原真彩图像灰阶化
5.1.4、灰阶后的图像显示
把灰阶后的图像显示在第二显示区,对两幅图片进行比较,观察两者特点。
显示原图像和灰阶后的图像
结论:
对图像灰阶处理就是对原图像黑白化
5.2、直方图均衡化
直方图均衡化是一种常用的灰度增强算法,是将原图的直方图经过变换函数修正为均匀的直方图,然后按照均衡后直方图修整原图像。
5.2.1、生成直方图
图像的直方图是表示数字图像中每一灰度级与该灰度级出现的频数,函数为imhist(X,map)
显示原图像的灰度直方图
5.2.2、直方图均衡化
均衡化函数为histeq(I,n),其中n默认为64
直方图均衡化比较
某些情况下,需要对图像的灰度级整个范围或者其中的某一段扩展或压缩到记录器件输入灰度级动态范围之内。
灰度变换可分为线性变换、分段线性变换、非线性变换和其他的灰度变换。
5.3.1、线性变换
具体实现形式为:
g(x,y)=(d-c)/(b-a)[f(x,y)-a]+c
线性变换结果对比
作用:
使曝光不充分图像中黑的更黑,白得更白,从而提高图像对比度
5.3.2、分段线性变换
具体实现形式:
g(x,y)=c/df(x,y)0<
=f(x,y)<
=a
g(x,y)=(d-c)/(b-a)[f(x,y)-a]+ca<
=b
g(x,y)=(f-b)/(e-a)[f(x,y)-b]+db<
=c
分段线性变换结果对比
5.3.3、非线性变换
g(x,y)=a+ln[f(x,y)+1]/b*lnc
非线性变换结果对比
六、心得体会
这次MATLAB课程设计让我学到了很多,不仅仅是知识,还学到了许多学习方法。
MATLAB软件在这之前接触的很少,仅仅是在数字信号处理的实验课上有过一点了解。
为了做好这次的课程设计,我查阅了大量的资料,并上网搜索了许多与此相关的知识,这个过程使我受益匪浅,那就认识了很多关于MATLAB的论坛,论坛上面提供了很多关于MATLAB学习的方法及其自学的方法,那些论坛对于将来学习MATLAB及其它方面的知识也有很大的帮助。
虽然在规定的时间内完成了老师所布置的课题,但是还是觉得不免有些不足。
由于时间局限,对许多MATLAB所运用到的知识仅仅是有所了解,而并没有完全地掌握,甚至可以说是只知其然,而不知其所以然。
这使我意识到对于MATLAB的学习任务还很艰巨,还有许多知识需要去了解,去深入研究。
通过这次MATLAB课设,学到了MATLABGUI程序设计,并通过MATLAB所生成的图像调试结果,以达到系统的要求。
MATLAB作为第四代计算机语言,具有相当强大的矩阵运算和操作功能,其程序编写也比其它语言要简单,是一种对学习非常有帮助的软件,在之后的时间,我依然会对它进行学习。
七、参考文献
1.郭仕剑、邱志模、陆静芳.MATLAB入门与实践.北京:
人民邮电出版社,2008
2.张智星.MATLAB程序设计及应用.北京:
清华大学出版社,2002
3.肖伟、刘忠.MATLAB程序设计与应用[M].北京:
清华大学出版社,2005
4.瞿亮.基于MATLAB的控制系统计算机仿真.北京:
清华大学出版社,北京交通大学出版社.2005
八、程序清单
一打开图片和灰阶化
globalim
globalx
globaly
globalz
x=0.002;
y=0.02;
z=0.04;
[filename,pathname]=...
uigetfile();
str=[pathnamefilename];
im=imread(str);
axes(handles.axes1);
imshow(im);
title();
im=rgb2gray(im);
axes(handles.axes2);
title();
二线性变换
globalim;
globalJ;
J=imadjust(im,[0.3,0.7],[]);
axes(handles.axes1);
imshow(im);
axes(handles.axes2);
imhist(im);
axes(handles.axes3);
imshow(J);
axes(handles.axes4);
imhist(J);
三分段线性变换
globalH;
H=double(im);
[M,N]=size(H);
%½
ø
Ð
»
Ò
¶
È
±
ä
fori=1:
M
forj=1:
N
ifH(i,j)<
=30
H(i,j)=H(i,j);
elseifim(i,j)<
=150
H(i,j)=(200-30)/(150-30)*(H(i,j)-30)+30;
else
H(i,j)=(255-200)/(255-150)*(H(i,j)-150)+200;
end
%±
º
ó
µ
Ä
½
á
¹
û
imshow(uint8(H));
imhist(uint8(H));
四非线性变换
J=double(im);
H=(log(J+1))/10;
imshow(H);
imhist(H);
五生成灰度直方图
六直方图均衡化
J=histeq(im);
title