课设报告正文(MATLAB的图像直方图的计算与显示)

合集下载

数字图像处理matlab版实验报告

数字图像处理matlab版实验报告

数字图像处理实验报告(matlab版)一.实验目的:熟悉数字图像处理中各种椒盐噪声的实质,明确各种滤波算法的的原理。

进一步熟悉matlab的编程环境,熟悉各种滤波算法对应的matlab函数。

实验结果给以数字图像处理课程各种算法处理效果一个更直观的印象。

二.实验原理:1.IPT(图像处理工具箱)基本函数介绍1. imread函数该函数用于从图形文件中读出图像。

格式A=IMRAED(FILENAME,FMT)。

该函数把FILENAME 中的图像读到A中。

若文件包含一个灰度图,则为二维矩阵。

若文件包含一个真彩图(RGB),则A为一三维矩阵。

FILENAME指明文件,FMT指明文件格式。

格式[X,MAP]=IMREAD(FILENAME,FMT).把FILENAME中的索引图读入X,其相应的调色板读到MAP中.图像文件中的调色板会被自动在范围[0,1]内重新调节。

FMT的可能取值为jpg 或jpeg,tif或tiff,bmp,png,hdf,pcx,xwd。

2.imwrite函数该函数用于把图像写入图形文件中。

格式IMWRITE(A,FILENAME,FMT)把图像A写入文件FILENAME中。

FILENAME指明文件名, FMT指明文件格式。

A既可以是一个灰度图,也可以是一个真彩图像。

格式IMWRITE(X,MAP,FILENAME,FMT)把索引图及其调色板写入FILENAME中。

MAP必须为合法的MATLAB调色板,大多数图像格式不支持多于256色的调色板。

FMT的可能取值为tif或tiff,jpg或jpeg,bmp,png,hdf,pcx,xwd。

3. imshow函数显示图像。

格式IMSHOW(I,N).用N级离散灰度级显示灰度图象I。

若省略N,默认用256级灰度显示24位图像,64级灰度显示其他系统。

格式IMSHOW(I,[LOW HIGH]),把I 作为灰度图显示。

LOW值指定为黑色,HIGH指定为白色,中间为按比例分布的灰色。

用MATLAB统计图像直方图

用MATLAB统计图像直方图
1、单下标:
提示:从1 开始,不 是从0开始!
有用的命令和函数
3、矩阵元素索引
2、双下标:
有用的命令和函数
循环控制: for 语法:for 控制条件
执行语句; end
找出5阶魔方矩阵中的25的坐标。 a=magic(5); m=0; n=0; for i=1:5 for j=1:5 if a(i,j)==25 m=i; n=j; end end end
字母 颜色
y 黄色 m 粉红 c 亮蓝 r 大红 g 绿色 b 蓝色 w 白色 k 黑色
标点 线型
· 点线
○ 圈线
× ×线
+ +字线
- 实线
*
星形线
: 虚线
-·(--) 点划线
bar(x,y)
while 使用while语句,找出最小的n,使得 n!<10e100
n = 1; while prod(1:n) < 1e100
n = n+1 end fprintf('%g! = %e > 1e100\n', n, prod(1:n)); 70! = 1.197857e+100 > 1e100
绘图:plot(x,y) x = -pi:pi/10:pi; y = tan(sin(x)) - sin(tan(x)); plot(x,y,'--rs','LineWidth',2,...
'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',10)
基本概念

课设报告正文(MATLAB的图像直方图的计算与显示)

课设报告正文(MATLAB的图像直方图的计算与显示)

课设报告正⽂(MATLAB的图像直⽅图的计算与显⽰)⽬录摘要........................................................................ 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显示图像直方图[宝典]

重庆交通大学
测绘工程系
实验课程:数字图像处理
实验名称:数字图像直方图的显示班级:
学号:
姓名:
实验日期:2011 年11 月20 日
1、用matlab显示图像的直方图
一、实验目的
通过学习数字图像的直方图,并通过matlab显示直观的领会直方图的含义与意义。

对matlab的图像处理进行初步了解。

二、实验素材
三、实验原理
灰度直方图反映的是一幅图像中各灰度级像素出现的频率之间的关系。

以灰度级为横坐标,纵坐标为灰度级的频率,绘制频率同灰度级的关系图就是灰度直方图。

在matlab中用imhist函数来实现。

四、实验步骤(操作截图)
在matlab中实现图像的直方图输出。

1、通过z=imread(‘I:\_DSC0163.jpg’)在matlab中载入上边素材中的图像。

2、通过g=rgb2gray(z)将其转换成灰度图像。

3、通过Imshow(g)将灰度图像在matlab中显示。

4、通过Imhist(g)显示出其的直方图。

五、实验体会。

matlab数字图像处理实验报告

matlab数字图像处理实验报告

《数字图像处理实验报告》实验一图像的增强一.实验目的1.熟悉图像在MATLAB下的读写、输出;2.熟悉直方图;3.熟悉图像的线性指数等;4.熟悉图像的算术运算和几何变换。

二.实验仪器计算机、MATLAB软件三.实验原理图像增强是指根据特定的需要突出图像中的重要信息,同时减弱或去除不需要的信息。

从不同的途径获取的图像,通过进行适当的增强处理,可以将原本模糊不清甚至根本无法分辨的原始图像处理成清晰的富含大量有用信息的可使用图像。

其基本原理是:对一幅图像的灰度直方图,经过一定的变换之后,使其成为均匀或基本均匀的,即使得分布在每一个灰度等级上的像素个数.f=H等或基本相等。

此方法是典刑的图像空间域技术处理,但是由于灰度直方图只是近似的概率密度函数,因此,当用离散的灰度等级做变换时,很难得到完全平坦均匀的结果。

频率域增强技术频率域增强是首先将图像从空间与变换到频域,然后进行各种各样的处理,再将所得到的结果进行反变换,从而达到图像处理的目的。

常用的变换方法有傅里叶变换、DCT变换、沃尔什-哈达玛变换、小波变换等。

假定原图像为f(x,y),经傅立叶变换为F(u,v)。

频率域增强就是选择合适的滤波器H(u,v)对F(u,v)的频谱成分进行处理,然后经逆傅立叶变换得到增强的图像。

四.实验内容及步骤1.图像在MATLAB下的读写、输出;实验过程:>> I = imread('F:\image\');figure;imshow(I);title('Original Image');text(size(I,2),size(I,1)+15, ...'', ...'FontSize',7,'HorizontalAlignment','right');Warning: Image is too big to fit on screen; displaying at 25% > In imuitools\private\initSize at 86In imshow at 1962.给定函数的累积直方图。

绘制数字图像灰度直方图实验报告matlab实现

绘制数字图像灰度直方图实验报告matlab实现

绘制数字图像灰度直方图实验报告matlab实现数字图像处理实验报告实验一绘制直方图学号__________________________ 姓名__________________________ 日期 __________________________实验一绘制直方图、实验内容1、编程绘制数字图像的直方图。

2、直方图均衡处理。

二、实验步骤1、设计思想或者流程图。

灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。

通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数, 也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。

直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。

从而达到清晰图像的目的。

2、源程序并附上注释。

clear all9一,图像的预处理,读入彩色图像将其灰度化PS=imread(J; % 读入JPG彩色图像文件imshow(PS)% 显示出来title(' 输入的彩色JPG图像')imwrite(rgb2gray(PS),”); % 将彩色图片灰度化并保存PS=rgb2gray(PS); % 汇,绘制直方图[m, n]=size(PS); %GP=zeros(1,256); %量for k=0:255GP(k+1)=le ngth(fi nd(PS==k))/(m* n); 概率,将其存入GP中相应位置灰度化后的数据存入数组测量图像尺寸参数预创建存放灰度出现概率的向% 计算每级灰度出现的v1.0可编辑可修改endfigure,bar(0:255,GP,'g') % title(' 原图像直方图')xlabel('灰度值')ylabel('出现概率')%E,直方图均衡化S仁zeros(1,256);for i=1:256for j=1:iS1(i)=GP(j)+S1(i); % endendS2=rou nd((S1*256)+; % for i=1:256GPeq(i)=sum(GP(fi nd(S2==i))); % 概率endfigure,bar(0:255,GPeq,'b') % title(' 均衡化后的直方图')xlabel('灰度值') ylabel('出现概率')咖,图像均衡化PA=PS;for i=0:255PA(fi nd(PS==i))=S2(i+1); % 的灰度值赋给这个像素绘制直方图计算Sk将Sk归到相近级的灰度计算现有每个灰度级出现的显示均衡化后的直方图将各个像素归一化后endfigure,imshow(PA) %title(' 均衡化后图像')imwrite(PA,”);3、程序运行结果比较。

用MATLAB统计图像直方

用MATLAB统计图像直方

02
imhist(I); % 计算并显示归一化直方图
03
```
04
直方图均衡化
直方图均衡化的定义
直方图均衡化是一种图像处理技术, 通过对图像的灰度直方图进行变换, 改善图像的对比度,增强图像的细节 和清晰度。
通过扩展图像的灰度级别范围,使得 图像的细节更加突出,提高图像的可 视化效果。
Matlab实现直方图均衡化
01 使用Matlab中的`histeq`函数,可以对图 像进行直方图均衡化处理。
02 首先,读取图像文件并将其转换为灰度图 像。
03
然后,使用`histeq`函数对灰度图像进行直 方图均衡化处理。
04
最后,显示处理后的图像。
直方图均衡化的效果
01
02
03
直方图均衡化可以显著 改善图像的对比度,增 强图像的细节和清晰度
彩色图像直方图
示例代码
1
```matlab
2
3
I = imread('image.jpg'); % 读取彩色图像
彩色图像直方图
imhist(I); % 计算并显示彩色直方图 ```
归一化直方图
归一化直方图
归一化直方图是一种将像素值范围限制在特定范围内的直方图,可以更好地反映图像的细节和特征。 在Matlab中,可以使用`imhist`函数计算归一化直方图。
直方图可以用于提取图像中的特征,如边缘、纹理等,也可以用于 图像分割,将图像划分为不同的区域。
直方图的计算方法
01
累积直方图
02
归一化直方图
首先计算原始直方图,然后将每个像 素强度值的频数累加起来,得到累积 直方图。累积直方图可以用于快速查 找特定像素强度值的范围。

MATLAB图像直方图及均衡化处理报告

MATLAB图像直方图及均衡化处理报告

电信信息工程3班卢国梁200730213246 23 1、用matlab作出图像的直方图clear;I=imread('2222.jpg');I=rgb2gray(I);add=[];tab1=zeros(1,256);for n=0:255X=I==n;add=[add;sum(sum(X))]; end;[a,b]=size(I);final=add/(a*b);figure;stem(final,'Marker','none'); figure(2)imshow(I)2、用matlab实现图像的直方图均衡化均衡化前均衡化后程序:clear;I=imread('2222.jpg');I=rgb2gray(I);I2=I;add=[];add1=[];tab1=zeros(1,256);tab2=zeros(1,256);for n=0:255X=I==n;add=[add;sum(sum(X))]; end;[a,b]=size(I);final=add/(a*b);for n=1:256for i=1:ntab1(n)=tab1(n)+final(i);end;end;tab1=tab1*255;tab2=round(tab1); for n=1:afor m=1:bfor t=0:255if I(n,m)==tI2(n,m)=tab2(t+1);end;end;end;end;for n=0:255X1=I2==n;add1=[add1;sum(sum(X1))]; end;[a1,b1]=size(I2);final1=add1/(a1*b1);figure;stem(final,'Marker','none');figure(2)imshow(I2);figure(3)stem(final1,'Marker','none')均衡化后直方图实验心得体会:这次先是把老师的课件都看了一次,知道了各种方法,包括多幅图像去噪声啊,中值滤波啊等等,看了一些参考的程序,请教了同学,就写了这么几个程序,中间遇到了一些问题,比如在均衡化的时候判断的时候用错了序列,结果图像处理之后变得更加难看,思量着不可能越处理越糟糕,就里里外外看了好久的程序,毕竟是当局者,看不出来,请教了同学帮忙看错误,才找出了那个错误:if I(n,m)==add(t);I2(n,m)=tab2(t+1);后来改为if I(n,m)==t;I2(n,m)=tab2(t+1);图像也好看很多了!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 原图片
3.3 处理后的灰度图片
图3.4 直方图
3.4 库函数运行结果
上述程序中没有使用库函数,现在使用库函数imhist直接获取图像的直方图,并与之前得到的直方图进行比较,可以发现所得结果比较相近。

图3.5 利用库函数所得直方图
4设计总结
此次课程设计要求我们matlab软件设计计算一幅图像中像素值在各个灰度级出现的概率,即图像的直方图的程序(不能用matlab提供的库函数),对给定图像计算直方图,并显示直方图图形。

虽然不能使用matlab软件中自带的库函数,但是我们可以掌握其原理,编写程序将库函数过程化,即编写程序代替库函数并实现同样的功能。

拿到一副图片,如果不是灰度图片的话,很难检测其灰度值,因此必须利用rgb2gray 函数将其变换成灰度图片。

要计算图像中某灰度值的出现概率,首先需要知道该灰度值的数量,因此程序中利用for循环检测该灰度值的次数。

然后利用size函数检测原图中横纵坐标的值,相乘即得到总的像素值。

两者相除即可得到出现的概率。

然后利用figure函数将他们用图片形式显示出来。

随后利用库函数imhist得到的直方图,与自己变成所得直方图进行比较,可发现图形基本一致。

5心得体会
通过这次课程设计,加强了我们动手、思考和解决问题的能力。

在设计过程中,经常会遇到这样那样的情况,就是心里想着这样的程序可以行得通,但实际接上总是实现不了,因此耗费在这上面的时间用去很多。

我觉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个函数的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多,并且对于其在程序中的使用有了更多的认识。

平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。

而且还可以记住很多东西。

比如一些程序的调用,通过动手实践让我们对调用映象深刻。

所以这个课程设计对我们的作用是非常大的。

设计程序时,我发现只有细心才能做到完美,首先是图片大小的选择,还有结果显示部分的设置,兼顾到方方面面去考虑是很需要的,否则只是一纸空话。

同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。

某个人的离群都可能导致导致整项工作的失败。

课程设计中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。

团结协作是我们实习成功的一项非常重要的保证。

而这次实习也正好锻炼我们这一点,这也是非常宝贵的。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

参考文献
[1] 杨杰黄朝兵.数字图像处理及matlab实现.北京:电子工业出版社,2010
[2] 艾德才.数字图像处理程序设计.北京:清华大学出版社,2002
[3] 冯博琴. Matlab原理及应用.北京:清华大学出版社,2000
[4] 薛钧毅. 数字图像处理及matlab程序设计.西安:西安交通大学出版社,2005
[5] 朱志刚. 数字图像处理.北京:高等教育出版社,2004
10。

相关文档
最新文档