课设报告正文(MATLAB的图像直方图的计算与显示)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
摘要........................................................................ I 1 基础介绍 (1)
1.1MATLAB简介 (1)
1.2数字图像处理简介 (1)
2 设计原理分析 (3)
2.1灰度直方图的定义 (3)
2.2设计原理 (3)
2.3常用函数介绍 (3)
3 程序及运行结果 (4)
3.1流程图 (4)
3.2源程序 (4)
3.3运行结果 (5)
3.4库函数运行结果 (7)
4设计总结 (8)
5心得体会 (9)
参考文献 (10)
1 基础介绍
1.1MATLAB简介
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
1.2数字图像处理简介
数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。数字图像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。数字图像处理作为一门学科大约形成于20世纪60年代初期。早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。
随着图像处理技术的深入发展,从70年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向更高、更深层次发展。人们已开始研究如何用计算机系统解释图像,实现类似人类视觉系统理解外部世界,这被称为图像理解或计算机视觉。很多国家,特别是发达国家投入更多的人力、物力到这项研究,取得了不少重要的研究成果。其中代表性的成果是70年代末MIT的Marr提出的视觉计算理论,这个理论成为计算机视觉领域其后十多年的主导思想。图像理解虽然在理论方法研究上已取得不小的进展,但它本身是一个比较难的研究领域,存在不少困难,因人类本身对自己的视觉过程还了解甚少,因此计算机视觉是一个有待人们进一步探索的新领域。
2 设计原理分析
2.1灰度直方图的定义
灰度直方图是灰度级的函数,描述的是图像中该灰度级的像素个数或该灰度级像素出现的频率。即:横坐标表示灰度级,纵坐标表示图像中该灰度级出现的个数或该灰度级像素出现的频率,这个关系图就是灰度直方图。它反映了图像灰度分布的情况。
我们可以通过直方图的状态来评断图像的一些性质:明亮图像的直方图倾向于灰度级高的一侧;低对比度图像的直方图窄而集中于灰度级的中部,高对比度图像的直方图成分覆盖的灰度级很宽而且像素的分布没有不太均匀,只有少量的垂线比其他高许多。直观上来说:若一幅图像其像素占有全部可能的灰度级并且分布均匀,则这样的图像有高对比度和多变的灰度色调。
从概率的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数pdf(probability density function),而概率分布函数就是直方图的累积和,即概率密度函数的积分。
2.2设计原理
首先读取目标图片,利用函数将其转换为灰度图片。然后建立一张空表,用于存放灰度值。利用for循环,检测图片中灰度值为0到255的点求和并存放在add中。检测图片的横纵坐标像素值,求乘积得到总像素值,利用前面的总和除以总像素值得到每个灰度值的概率,最后得到直方图显示。
2.3 常用函数介绍
imread:图片读取函数
rgb2gray:将图片变换为灰度图片
size:图片大小检测函数
figure:图片显示函数
imshow:显示原图片
3 程序及运行结果
3.1流程图
图3.1 设计流程图3.2 源程序
clear
I=imread('F:\a.jpg');
I=rgb2gray(I);
add=[];
tab1=zeros(1,256);
for n=0:255
X=I==n;
add=[add;sum(sum(X))];
end;
[a b]=size(I);
final=add/(a*b);
figure;
imshow(I);
figure;
bar(0:255,final,'g') %绘制直方图title('原图像直方图') figure;
imhist(I) %利用库函数绘制直方图
3.3 运行结果
图3.2 原图片