用matlab实现图像灰度变换课程设计.docx

上传人:b****1 文档编号:2586021 上传时间:2023-05-04 格式:DOCX 页数:15 大小:500.15KB
下载 相关 举报
用matlab实现图像灰度变换课程设计.docx_第1页
第1页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第2页
第2页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第3页
第3页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第4页
第4页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第5页
第5页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第6页
第6页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第7页
第7页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第8页
第8页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第9页
第9页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第10页
第10页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第11页
第11页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第12页
第12页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第13页
第13页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第14页
第14页 / 共15页
用matlab实现图像灰度变换课程设计.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

用matlab实现图像灰度变换课程设计.docx

《用matlab实现图像灰度变换课程设计.docx》由会员分享,可在线阅读,更多相关《用matlab实现图像灰度变换课程设计.docx(15页珍藏版)》请在冰点文库上搜索。

用matlab实现图像灰度变换课程设计.docx

用matlab实现图像灰度变换课程设计

用matlab实现图像灰度变换课程设计

课程设计报告册

 

课程名称:

MATLAB课程设计

课题名称:

灰度变换增强

专业班级:

姓名:

BobWang学号:

15164

课程设计主要场所:

信息楼220

时间:

指导教师:

成绩:

 

前言

数字图像处理技术是20世界60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应用前景。

MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。

它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。

根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或变成以完成各自的计算。

MATLAB中集成了功能强大的图像处理工具箱。

由于MATLAB语言的语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式,而且这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势。

MATLAB是一种以矩阵运算为基础的交互式程序语言,能够满足科学、工程计算和绘图的要求,与其它计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。

我们学习掌握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、灰度变换

某些情况下,需要对图像的灰度级整个范围或者其中的某一段扩展或压缩到记录器件输入灰度级动态范围之内。

灰度变换可分为线性变换、分段线性变换、非线性变换和其他的灰度变换。

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<=f(x,y)<=b

g(x,y)=(f-b)/(e-a)[f(x,y)-b]+db<=f(x,y)<=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);

imshow(im);

title();

二线性变换

globalim;

globalJ;

J=imadjust(im,[0.3,0.7],[]);

axes(handles.axes1);

imshow(im);title();

axes(handles.axes2);

imhist(im);title();

axes(handles.axes3);

imshow(J);title();

axes(handles.axes4);

imhist(J);title();

三分段线性变换

globalim;

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

end

end

%±ä»»ºóµÄ½á¹û

axes(handles.axes1);

imshow(im);title();

axes(handles.axes2);

imhist(im);title();

axes(handles.axes3);

imshow(uint8(H));title();

axes(handles.axes4);

imhist(uint8(H));title();

四非线性变换

globalim;

globalJ;

globalH;

J=double(im);

H=(log(J+1))/10;

axes(handles.axes1);

imshow(im);title();

axes(handles.axes2);

imhist(im);title();

axes(handles.axes3);

imshow(H);title();

axes(handles.axes4);

imhist(H);title();

五生成灰度直方图

globalim;

axes(handles.axes1);

imshow(im);title();

axes(handles.axes2);

imhist(im);title();

 

六直方图均衡化

globalim;

globalJ;

J=histeq(im);

axes(handles.axes1);

imshow(im);title();

axes(handles.axes2);

imshow(J);title();

axes(handles.axes3);

imhist(im);title();

axes(handles.axes4);

imhist(J);title

 

平滑处理

用3*3屏蔽窗口的8近邻均值进行滤波

for(intj=1;j

{

for(inti=1;i

{

averg=0;

averg=(int)((p_data[(j-1)*wide+(i-1)]+p_data[(j-1)*wide+i]

+p_data[(j-1)*wide+(i+1)]+p_data[j*wide+(i-1)]

+p_data[j*wide+i+1]+p_data[(j+1)*wide+(i-1)]

+p_data[(j+1)*wide+i]+p_data[(j+1)*wide+i+1])/8);//求周围8近邻均值

if(abs(averg-p_temp[j*wide+i])>127.5)

p_temp[j*wide+i]=averg;

}

}

 

利用巴特沃斯(Butterworth)低通滤波器对受噪声干扰的图像进行平滑处理

I=imread('aaa.jpg');

imshow(I);

J1=imnoise(I,'salt&pepper');%叠加椒盐噪声

figure,imshow(J1);

f=double(J1);%数据类型转换,MATLAB不支持图像的无符号整型的计算

g=fft2(f);%傅立叶变换

g=fftshift(g);%转换数据矩阵

[M,N]=size(g);

nn=2;%二阶巴特沃斯(Butterworth)低通滤波器

d0=50;

m=fix(M/2);n=fix(N/2);

fori=1:

M

forj=1:

N

d=sqrt((i-m)^2+(j-n)^2);

h=1/(1+0.414*(d/d0)^(2*nn));%计算低通滤波器传递函数

result(i,j)=h*g(i,j);

end

end

result=ifftshift(result);

J2=ifft2(result);

J3=uint8(real(J2));

figure,imshow(J3);%显示滤波处理后的图像

运行结果:

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2