课设报告正文(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);图像也好看很多了!。

MATLAB课程设计(基于MATLAB的图像处理的基本运算)

MATLAB课程设计(基于MATLAB的图像处理的基本运算)

MATLAB课程设计(基于MATLAB的图像处理的基本运算)课程设计任务书学⽣姓名:专业班级:指导教师:⼯作单位:题⽬: 基于MATLAB的图像处理的基本运算初始条件①MATLAB软件②数字信号处理与图像处理基础知识要求完成的主要任务:(1)能够对图像亮度和对⽐度变化调整,并⽐较结果。

(2)编写程序通过最近邻插值和双线性插值等算法将⽤户所选取的图像区域进⾏放⼤和缩⼩整数倍的和旋转操作,并保存,⽐较⼏种插值的效果。

(3)图像直⽅图统计和直⽅图均衡,要求显⽰直⽅图统计,⽐较直⽅图均衡后的效果。

(4)对图像加⼊各种噪声,⽐较效果。

时间安排:第1周:安排任务,分组第2-17周:设计仿真,撰写报告第18周:完成设计,提交报告,答辩地点:鉴主3楼计算机实验室指导教师签名: 2010年⽉⽇系主任(或责任教师)签名: 2010年⽉⽇摘要MATLAB是—套⾼性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显⽰于⼀体,构成—个⽅便的、界⾯友好的⽤户环境。

MATLAB强⼤的扩展功能为各个领域的应⽤提供了基础,由各个领域的专家相继给出了MATLAB ⼯具箱,其中主要有信号处理,控制系统,神经⽹络,图像处助,鲁棒控制,⾮线性系统控制设计,最优化,⼩波,通信等⼯具箱,这此⼯具箱给各个领域的研究和⼯程应⽤提供了有⼒的⼯具。

借助于这些“巨⼈肩膀上的⼯具”,各个层次的研究⼈员可直现⽅便地进⾏分析、计算及设计⼯作,从⽽⼤⼤地节省了时间。

本次课程设计的⽬的在于较全⾯了解常⽤的数据分析与处理原理及⽅法,能够运⽤相关软件进⾏模拟分析。

通过对采集的图像进⾏常规的图像的亮度和对⽐度的调整,并进⾏最近邻插值和双线性插值等算法将⽤户所选取的图像区域进⾏放⼤和缩⼩整数倍的和旋转操作,并保存,⽐较⼏种插值的效果,以及对图像进⾏直⽅图和直⽅图均衡并加⼊噪声进⾏对⽐,达到本次课程设计的⽬的关键词:MATLAB 亮度和对⽐度插值放⼤旋转噪声AbstractMATLAB is - set of high-performance numerical computation and visualization software, which combines numerical analysis, matrix computation, signal processing and graphics in one form - a convenient, user-friendly user environment.MATLAB is a powerful extension application in various fields to provide a basis by experts in various fields have been given a MATLAB toolbox, which are signal processing, control systems, neural networks, image processing support, robust control, nonlinearcontrol system design, optimization, wavelets, communications toolkit, which this kit to the various areas of research and engineering applications a powerful tool.With these "tools on the shoulders of giants," researchers at all levels can now be easily analyzed directly, calculation and design work, which greatly saves time.The training aims to strengthen the basis of a more comprehensive understanding of commonly used data analysis and processing principles and methods related to the use of simulation software.Images collected by conventional image brightness and contrast adjustments, and the nearest neighbor interpolation and bilinear interpolation algorithm to the user selected image area to zoom in and out several times and rotate the whole operation, and save, comparethe effect of several interpolation and the image histogram and histogram and compared with noise, to the purpose of this course design.Keywords: MATLAB brightness and contrast rotation interpolation noise amplification ⽬录1.MATLAB简介 (1)1.1 MATLA的基本⽤途 (1)1.2 MATLAB的语⾔特点 (1)1.3 MATLAB系统构成 (1)2.数据采集 (2)2.1图像的选取 (2)2.2 图像亮度和对⽐度的调整 (2)2.2.1 编辑M⽂件 (2)2.2.2 MATLAB⽀持的图像格式和类型 (3)2.2.3 图像的读取 (3)2.2.4调整图像亮度和对⽐度 (4)3.图像的⼏何操作 (6)3.1插补操作 (6)3.1.1 插补功能介绍 (6)3.1.2 插补具体操作 (6)3.2 放缩操作 (8)3.2.1放缩功能介绍 (8)3.2.2 具体操作 (9)3.3 旋转操作 (10)3.3.1 旋转功能介绍 (10)3.3.2 具体操作 (10)4.直⽅图统计 (12)4.1灰度图的获取 (12)4.1.1 灰度图的转换功能介绍 (12)4.1.2 具体操作 (12)4.2直⽅图以及直⽅图均衡 (13)4.2.1 直⽅图函数功能介绍 (13)4.2.2 直⽅图具体操作 (14)5.图像的噪声处理 (15)5.1添加噪声的功能介绍 (15)5.2添加噪声的具体操作 (16)6.总结(⼼得体会) (18)7.参考⽂献 (19)1.MATLAB简介1.1 MATLA的基本⽤途MATLAB是矩阵实验室(Matrix Laboratory)之意。

MATLAB课程设计报告(绝对完整)

MATLAB课程设计报告(绝对完整)

课程设计任务书学生姓名:董航专业班级:电信1006班指导教师:阙大顺,李景松工作单位:信息工程学院课程设计名称:Matlab应用课程设计课程设计题目:Matlab运算与应用设计5初始条件:1.Matlab6.5以上版本软件;2.课程设计辅导资料:“Matlab语言基础及使用入门”、“Matlab及在电子信息课程中的应用”、线性代数及相关书籍等;3.先修课程:高等数学、线性代数、电路、Matlab应用实践及信号处理类相关课程等。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.课程设计内容:根据指导老师给定的7套题目,按规定选择其中1套完成;2.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结。

具体设计要求包括:①初步了解Matlab、熟悉Matlab界面、进行简单操作;②MATLAB的数值计算:创建矩阵矩阵运算、多项式运算、线性方程组、数值统计;③基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定等;④使用文本编辑器编辑m文件,函数调用;⑤能进行简单的信号处理Matlab编程;⑥按要求参加课程设计实验演示和答辩等。

3.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括:①目录;②与设计题目相关的理论分析、归纳和总结;③与设计内容相关的原理分析、建模、推导、可行性分析;④程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结;⑤课程设计的心得体会(至少500字);⑥参考文献(不少于5篇);⑦其它必要内容等。

时间安排:1.5周(分散进行)参考文献:[1](美)穆尔,高会生,刘童娜,李聪聪.MA TLAB实用教程(第二版) . 电子工业出版社,2010.[2]王正林,刘明.精通MATLAB(升级版) .电子工业出版社,2011.[3]陈杰. MA TLAB宝典(第3版) . 电子工业出版社,2011.[4]刘保柱,苏彦华,张宏林. MATLAB 7.0从入门到精通(修订版) . 人民邮电出版社,2010.指导教师签名:年月日系主任(或责任教师)签名:年月日目录1 MATLAB的简介 (1)2课程设计内容 (4)2.1 (5)2.2 (2)2.3 (2)2.4 (2)2.5 (2)2.6 (2)2.7 (2)2.8 (2)2.9 (2)2.10 (2)3课程设计心得体会 (1)4参考文献 (1)1 Matlab 软件简介1.1 MATLAB产生的历史背景MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

数字图像处理课程设计报告matlab

数字图像处理课程设计报告matlab

数字图像处理课程设计报告姓名:学号:班级: .net设计题目:图像处理教师:赵哲老师提交日期: 12月29日一、设计内容:主题:《图像处理》详细说明:对图像进行处理(简单滤镜,模糊,锐化,高斯模糊等),对图像进行处理(上下对称,左右对称,单双色显示,亮暗程度调整等),对图像进行特效处理(反色,实色混合,色彩平衡,浮雕效果,素描效果,雾化效果等),二、涉及知识内容:1、二值化2、各种滤波3、算法等三、设计流程图四、实例分析及截图效果:运行效果截图:第一步:读取原图,并显示close all;clear;clc;% 清楚工作窗口clc 清空变量clear 关闭打开的窗口close allI=imread('1.jpg');% 插入图片1.jpg 赋给Iimshow(I);% 输出图II1=rgb2gray(I);%图片变灰度图figure%新建窗口subplot(321);% 3行2列第一幅图imhist(I1);%输出图片title('原图直方图');%图片名称一,图像处理模糊H=fspecial('motion',40);%% 滤波算子模糊程度40 motion运动q=imfilter(I,H,'replicate');%imfilter实现线性空间滤波函数,I图经过H滤波处理,replicate反复复制q1=rgb2gray(q);imhist(q1);title('模糊图直方图');二,图像处理锐化H=fspecial('unsharp');%锐化滤波算子,unsharp不清晰的qq=imfilter(I,H,'replicate');qq1=rgb2gray(qq);imhist(qq1);title('锐化图直方图');三,图像处理浮雕(来源网络)%浮雕图l=imread('1.jpg');f0=rgb2gray(l);%变灰度图f1=imnoise(f0,'speckle',0.01);%高斯噪声加入密度为0.01的高斯乘性噪声 imnoise噪声污染图像函数 speckle斑点f1=im2double(f1);%把图像数据类型转换为双精度浮点类型h3=1/9.*[1 1 1;1 1 1;1 1 1];%采用h3对图像f2进行卷积滤波f4=conv2(f1,h3,'same');%进行sobel滤波h2=fspecial('sobel');g3=filter2(h2,f1,'same');%卷积和多项式相乘 same相同的k=mat2gray(g3);% 实现图像矩阵的归一化操作四,图像处理素描(来源网络)f=imread('1.jpg');[VG,A,PPG] = colorgrad(f);ppg = im2uint8(PPG);ppgf = 255 - ppg;[M,N] = size(ppgf);T=200;ppgf1 = zeros(M,N);for ii = 1:Mfor jj = 1:Nif ppgf(ii,jj)<Tppgf1(ii,jj)=0;elseppgf1(ii,jj)=235/(255-T)*(ppgf(ii,jj)-T);endendendppgf1 = uint8(ppgf1);H=fspecial('unsharp');Motionblur=imfilter(ppgf1,H,'replicate');figure;imshow(ppgf1);调用function [VG, A, PPG] = colorgrad(f, T)if (ndims(f)~=3) || (size(f,3)~=3)error('Input image must be RGB');endsh = fspecial('sobel');sv = sh';Rx = imfilter(double(f(:,:,1)), sh, 'replicate');Ry = imfilter(double(f(:,:,1)), sv, 'replicate');Gx = imfilter(double(f(:,:,2)), sh, 'replicate');Gy = imfilter(double(f(:,:,2)), sv, 'replicate');Bx = imfilter(double(f(:,:,3)), sh, 'replicate');By = imfilter(double(f(:,:,3)), sv, 'replicate');gxx = Rx.^2 + Gx.^2 + Bx.^2;gyy = Ry.^2 + Gy.^2 + By.^2;gxy = Rx.*Ry + Gx.*Gy + Bx.*By;A = 0.5*(atan(2*gxy./(gxx-gyy+eps)));G1 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A));A = A + pi/2;G2 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A)); G1 = G1.^0.5;G2 = G2.^0.5;VG = mat2gray(max(G1, G2));RG = sqrt(Rx.^2 + Ry.^2);GG = sqrt(Gx.^2 + Gy.^2);BG = sqrt(Bx.^2 + By.^2);PPG = mat2gray(RG + GG + BG);if nargin ==2VG = (VG>T).*VG;PPG = (PPG>T).*PPG;endf1=rgb2gray(f);imhist(f1);title('素描图直方图');五,图像处理实色混合(来源网络)%实色混合I(I<=127)=0; %对像素进行处理,若值小于等于127,置0 I(I>127)=255; %对像素进行处理,若值大于127,置255 imshow(I);title('像素图');I1=rgb2gray(f);imhist(I1);title('像素图直方图');六,图像处理反色图f=imread('1.jpg');q=255-q;imshow(q);title('反色图');imhist(q1);title('反色图直方图');七,图像处理上下对称A=imread('1.jpg');B=A;[a,b,c]=size(A);a1=floor(a/2); b1=floor(b/2); c1=floor(c/2);B(1:a1,1:b,1:c)=A(a:-1:a-a1+1,1:b,1:c);figureimshow(B)title('上下对称');A=rgb2gray(A);figureimhist(A)title('上下对称直方图');八,图像处理类左右对称C=imread('1.jpg');A=C;C(1:a,1:b1,1:c)=A(1:a,b:-1:b+1-b1,1:c);figureimshow(C)title('左右对称');A=rgb2gray(A);figureimhist(A);title('左右对称直方图');九,图像处理单双色显示a=imread('1.jpg');a1=a(:,:,1);a2=a(:,:,2); a3=a(:,:,3);aa=rgb2gray(a);a4=cat(3,a1,aa,aa); a5=cat(3,a1,a2,aa);figuresubplot(121);imshow(a4);title('单色显示');subplot(122);imshow(a5);title('双色显示');a4=rgb2gray(a4);a5=rgb2gray(a5);figuresubplot(121);imhist(a4);title('单色显示直方图');subplot(122);imhist(a5);title('双色显示直方图');十,图像处理亮暗度调整a=imread('1.jpg');a1=0.8*a;figuresubplot(121);imshow(a1);title('暗图');subplot(122);imshow(a2);title('亮图')q3=rgb2gray(a1);q4=rgb2gray(a2);figuresubplot(121);mhist(q3);title('暗图直方图') subplot(122);imhist(q4);title('亮图直方图')十一,图像处理雾化处理q=imread('1.jpg');m=size(q,1);n=size(q,2);r=q(:,:,1);g=q(:,:,2);b=q(:,:,3);for i=2:m-10for j=2:n-10k=rand(1)*10;%产生一个随机数作为半径di=i+round(mod(k,33));%得到随机横坐标dj=j+round(mod(k,33));%得到随机纵坐标r(i,j)=r(di,dj);%将原像素点用随机像素点代替 g(i,j)=g(di,dj);b(i,j)=b(di,dj);endenda(:,:,1)=r;a(:,:,2)=g;a(:,:,3)=b;imshow(a)title('雾化处理图');q=rgb2gray(a);figureimhist(q);title('雾化处理图直方图');十二,图像处理高斯滤波I = imread('1.jpg');G =fspecial('gaussian', [5 5], 2);% fspecial生成一个高斯滤波器Ig =imfilter(I,G,'same');%imfilter使用该滤波器处理图片imshow(Ig);title('高斯滤波');I1=rgb2gray(Ig);imhist(I1);title('高斯滤波直方图');十三,图像处理色彩平衡(来自网络)im=imread('1.jpg');im2=im;%存储元图像im1=rgb2ycbcr(im);%将im RGB图像转换为YCbCr空间。

matlab图像处理实验报告

matlab图像处理实验报告

图像处理实验报告姓名:陈琼暖班级:07计科一班学号:20070810104目录:实验一:灰度图像处理 (3)实验二:灰度图像增强 (5)实验三:二值图像处理 (8)实验四:图像变换 (13)大实验:车牌检测 (15)实验一:灰度图像处理题目:直方图与灰度均衡基本要求:(1) BMP灰度图像读取、显示、保存;(2)编程实现得出灰度图像的直方图;(3)实现灰度均衡算法.实验过程:1、BMP灰度图像读取、显示、保存;⏹图像的读写与显示操作:用imread( )读取图像。

⏹图像显示于屏幕:imshow( ) 。

⏹2、编程实现得出灰度图像的直方图;3、实现灰度均衡算法;⏹直方图均衡化可用histeq( )函数实现。

⏹imhist(I) 显示直方图。

直方图中bin的数目有图像的类型决定。

如果I是个灰度图像,imhist将使用默认值256个bins。

如果I是一个二值图像,imhist使用两bins。

实验总结:Matlab 语言是一种简洁,可读性较强的高效率编程软件,通过运用图像处理工具箱中的有关函数,就可以对原图像进行简单的处理。

通过比较灰度原图和经均衡化后的图形可见图像变得清晰,均衡化后的直方图形状比原直方图的形状更理想。

实验二:灰度图像增强题目:图像平滑与锐化 基本要求:(1)使用邻域平均法实现平滑运算; (2)使用中值滤波实现平滑运算; (3)使用拉普拉斯算子实现锐化运算.实验过程: 1、使用邻域平均法实现平滑运算;步骤:对图像添加噪声,对带噪声的图像数据进行平滑处理; ⏹ 对图像添加噪声J = imnoise(I,type,parameters)2、使用中值滤波实现平滑运算;3、使用拉普拉斯算子实现锐化运算;⏹采用可根据图像的局部方差来调整滤波器输出的自适应滤波对图像进行平滑,及采用拉氏算子运算使图像的模糊部分得到增强。

⏹在Matlab 中,各种滤波方法都是在空间域中通过不同的卷积模板即滤波算子实现,可用fspecial( )函数创建预定义的滤波算子,然后用filter2( )或conv2( )函数在实现卷积运算的基础上进行滤波。

数字图像处理实验报告(matlab)

数字图像处理实验报告(matlab)

学院:自动化学院班级:电081班姓名:***学号:********2011年10月实验一直方图均衡化一、实验目的:1. 熟悉图像数据在计算机中的存储方式;2. 掌握图像直方图均衡化这一基本处理过程。

二、实验条件:PC微机一台和MATLAB软件。

三、实验内容:1.读入图像数据到内存中,并显示读入的图像;2.实现直方图均衡化处理,显示处理前后图像的直方图。

3.显示并保存处理结果。

四、实验步骤:1.打开Matlab编程环境;2.获取实验用图像。

用’imread’函数将图像读入Matlab;用’imshow’函数显示读入的图像。

3.获取输入图像的直方图:用’imhist’函数处理图像。

4.均衡化处理:用’histeq’函数处理图像即可。

5.获取均衡化后的直方图并显示图像:用’imhist’和’imshow’函数。

6.保存实验结果:用’imwrite’函数处理。

五、实验程序及结果:1、实验程序subplot(6,2,1);i=imread('test1-1.jpg');imhist(i);title('test1-1 hist');subplot(6,2,2);i=im2double(i);imshow(i);title('test1-1 Ô-ͼÏñ');subplot(6,2,3);s=histeq(i);imhist(s);title('test1-1 balancedhist');subplot(6,2,4);imshow(s);title('test1-1 ¾ùºâ»¯ºóµÄͼÏñ');subplot(6,2,5);i=imread('test1-2.jpg');imhist(i);title('test1-2 hist');subplot(6,2,6);i=im2double(i);imshow(i);title('test1-2 Ô-ͼÏñ');subplot(6,2,7);s=histeq(i);imhist(s);title('test1-2 balancedhist'); subplot(6,2,8);imshow(s);title('test1-2 ¾ùºâ»¯ºóµÄͼÏñ');subplot(6,2,9);i=imread('test1-3.jpg');imhist(i);title('test1-3 hist');subplot(6,2,10);i=im2double(i);imshow(i);title('test1-3 Ô-ͼÏñ');subplot(6,2,11);s=histeq(i);imhist(s);title('test1-3 balancedhist'); subplot(6,2,12);imshow(s);title('test1-3 ¾ùºâ»¯ºóµÄͼÏñ');2、实验结果test1-1 hist050100150200250test1-1 原图像test1-1 balancedhist00.10.20.30.40.50.60.70.80.91test1-1 均衡化后的图像test1-2 hist050100150200250test1-2 原图像test1-2 balancedhist00.10.20.30.40.50.60.70.80.91test1-2 均衡化后的图像0test1-3 hist050100150200250test1-3 原图像test1-3 balancedhist00.10.20.30.40.50.60.70.80.91test1-3 均衡化后的图像六、实验思考1.数字图像直方图均衡化之后直方图为什么不是绝对平坦的?答:直方图均衡化是将一已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像。

MATLAB数字图像实验报告

MATLAB数字图像实验报告

基于MATLAB的图像处理的课程设计物理与信息工程学院一、课程设计的目的综合运用MATLAB工具箱实现图像处理的GUI程序设计。

二、课程设计的基本要求1)熟悉和掌握MA TLAB 程序设计方法2)掌握MATLAB GUI 程序设计3)学习和熟悉MA TLAB图像处理工具箱4)学会运用MATLAB工具箱对图像进行处理和分析三、程序需求和功能模块分析设计分为6个部分,分别为文件,实现图像读取、保存和退出该演示的功能;图像转换,实现RGB转为灰度图像、索引图像,二进制图像和创建轮廓等功能;工具,实现亮度改变、锐化、剪切、旋转和直方图统计与均衡等功能;缩放,实现最近邻插值法和双线性插值法的放大和缩小;噪声与滤波,实现对图像添加各种噪声和对图像进行去噪处理;帮助,是一个关于MA TLAB的显示。

四、详细设计过程,详细阐述如何实现具体操作,必要时画出流程图分析,附上关键程序代码。

学习MATLAB GUI程序设计,利用MA TLAB图像处理工具箱,设计和实现自己的Photoshop 。

要求:按照软件工程方法,根据需求进行程序的功能分析和界面设计,给出设计详细说明。

然后按照自己拟定的功能要求进行程序设计和调试。

具体操作双击打开MATLAB 7.0→File→New→GUI→修改名称→保存;单击→调整文本框的大小,输入该演示名称,修改字体大小、颜色等;单击→调整axes1大小→单击OK,调整按钮大小和颜色,再建axes2→单击OK,调整按钮大小和颜色;单击→调整噪声群文本框的大小,输入名称,修改字体大小、颜色等,单击,建立3个噪声框;单击建立滤波群框,单击,建立3个滤波框;单击,建立Menu Editor,即建目录;View→M-file Edit→编写程序;最后单击,建立几个便捷按钮,相应的View callbacks与之前同。

程序代码及实现的功能1)图像的读取和保存。

读取[name,path]=uigetfile('*.*','');file=[path,name];axes(handles.axes1);x=imread(file);handles.img=x;guidata(hObject, handles);imshow(x);title(‘打开’);保存[sFileName sFilePath]=uiputfile({'*.jpg','JPEG-Files (*.jpg)'; ...'*.*','All Files (*.*)'},'保存图像文件','untitled.jpg');if ~isequal([sFileName,sFilePath],[0,0])sFileFullName=[sFilePath sFileName];imwrite(handles.noise_img,sFileFullName,'jpg');elsemsgbox('确定取消保存?');end退出clc;close all;close(gcf);2)设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。

数字图像的直方图规定化处理实验matlab

数字图像的直方图规定化处理实验matlab
2.
实验总结
1.对程序要充分的了解,适当改动程序,对照程序和直方图之间的关系。
2.直方图均衡化处理后,图像的直方图较为平直,各灰度级的值相对均匀。由于灰度级具有均匀的概率分布,图像看起来更清晰了。
指导教师意见
〔三〕找出 的点对,并映射到 。
〔四〕求出 。
实验步骤
1.准备好的图片,并保存好或者选好MATLAB的工作路径
2.将参考程序稍做修改,并运行。
3.结果分析。
实验容
程序如下:
1.文件名:fc.m
A=imread('123.jpg');
I=rgb2gray(A);
J=histeq(I);
figure,imshow(A)
J=histeq(I,32);
[counts,*]=imhist(J);
Q=imread('123.jpg');
figure;imshow(Q);
title('原图像');
A=rgb2gray(Q);
figure;imhist(A);
title('原图像直方图');
M=histeq(A,counts);
实验原理
直方图规定化是用于产生处理后有特殊直方图的图像方法。
令 和 分别为原始图像和期望图像的灰度概率密度函数。对原始图像和期望图像均作直方图均衡化处理,应有:
, ,
由于都是作直方图均衡化处理,所以处理后的原图像的灰度概率密度函数 及理想图像的灰度概率密度函数 是相等的。因此,可以用变换后的原始图像灰度级S代替上式中的V,即 。利用此式可以从原始图像得到希望的图像灰度级。对离散图像,有
, ,
综上所述,数字图像的直方图规定化就是将直方图均衡化后的结果映射到期望的理想直方图上,使图像按人的意愿去变换。数字图像的直方图规定的算法如下:

直方图均衡化的MATLAB实现(遥感课程设计)

直方图均衡化的MATLAB实现(遥感课程设计)
r
s T r Pr r dr
0
(2.4)
其中,
P r dr 是 r 的累积分布函数,由于累积分布函数是 r 的函数,且从 0 到 1 单调递
0 r
r
增,所以变换函数即式(2.4)满足关于 T r 在 0 r 1 区间内单值单调增加,在 0 r 1 内有 0 T r 1 的两个条件。 对公式(2.4)中的 r 求导,有 ds / dr Pr r ,把求导结果代入式(2.3),则有:
2、图像直方图均衡化
直方图是反映一幅图像中的灰度级与出现这种灰度级的概率之间关系的统计图表。 直方
图的横坐标是灰度级 rk , 纵坐标是图像中具有该灰度级的像素个数或出现这个灰度级数的概 率 P rk 。直方图能直观地表示出图像具有某种灰度级的像素个数,是对图像灰度值分布情 总数, nk 为第 k 级灰度的像素数。 通过观察图像的灰度直方图, 就可以判断这幅图像的对比度和清晰度, 也可以掌握图像 的明暗程度。本文即采用直方图均衡化[11]的方法来对航拍图像进行增强处理。 设 r 和 s 分别表示归一化 (注: 归一化是指图像的灰度值通过某个比例变换后限制在[0,1] 之间)的图像灰度和经直方图修正后的图像灰度,即 0 r , s 1 。在 0,1 区间内的任何一 个 r 值都可产生一个 s 值,且有: s T r 。T r 为变换函数,满足:(1)在 0 r 1 区 间内是单调递增函数;(2)对于 0 r 1 ,有 0 T r 1 。条件(1)保证变换后的灰度 从黑到白的次序不变,条件(2)确保灰度变换后的像素处于允许的范围之内。从 s 到 r 的 反变换关系为: r T 况的整体描述。概率灰度直方图的计算公式为: P rk nk / N 。其中 N 为图像中的像素

用MATLAB统计图像直方图

用MATLAB统计图像直方图

3
直方图均衡化能够改善图像的对比度,突出细节, 使图像更加清晰。
Matlab实现直方图均衡化
01
在Matlab中,可以使用内置的`histeq`函数实现直方
图均衡化。
02
调用`histeq`函数时,需要将原始图像作为输入,并
返回均衡化后的图像。
03
Matlab还提供了其他函数和工具箱,如`imhist`和
5. 分析直方图
根据直方图的形状和分布情况, 可以对图像的亮度、对比度和分 布情况进行分析和评估。
03
图像直方图的计算
灰度图像直方图
灰度直方图
用于描述灰度图像中像素值的分 布情况,通过统计每个灰度级像 素的数量,可以反映图像的亮度 和对比度。
计算方法
遍历图像中的每个像素,统计每 个灰度级出现的次数,最终形成 灰度直方图。
直方图统计步骤
2. 转换为灰度图像
如果需要统计灰度图像的直方图, 可以使用rgb2gray函数将彩色图 像转换为灰度图像。
3. 统计像素值
使用imhist函数统计每个像素值 范围内的像素数量,生成直方图 数据。
1. 读取图像
使用imread函数读取图像文件。
4. 显示直方图
使用bar函数显示直方图。
VS
归一化方法
将直方图的值除以最大值,使其范围在01之间,便于比较不同图像的直方图特征 。
04
直方图均衡化
直方图均衡化的基本原理
1
直方图均衡化通过拉伸图像的灰度直方图,使其 充满整个灰度级别范围,从而提高图像的对比度。
2
通过计算原始图像的直方图,找到累积分布函数 (CDF),然后使用CDF对原始图像进行灰度映 射,实现直方图均衡化。

matlab课程设计报告模板

matlab课程设计报告模板

matlab课程设计报告模板一、教学目标本课程的教学目标是使学生掌握MATLAB的基本功能和使用方法,能够运用MATLAB进行简单的数学计算、数据处理和图形绘制。

具体分为以下三个部分:1.知识目标:学生需要了解MATLAB的基本组成、工作环境以及常用的数学函数和工具箱。

2.技能目标:学生能够熟练使用MATLAB进行矩阵运算、数学计算、数据分析和图形绘制。

3.情感态度价值观目标:通过学习MATLAB,培养学生对科学计算和计算机辅助设计的兴趣,提高学生解决实际问题的能力。

二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.MATLAB概述:介绍MATLAB的发展历程、功能特点和应用领域。

2.MATLAB基本操作:包括矩阵运算、数学计算、数据分析、图形绘制等。

3.MATLAB工具箱:介绍MATLAB常用的工具箱,如数值计算工具箱、信号处理工具箱等。

4.MATLAB实际应用案例:分析实际案例,让学生学会将MATLAB应用于实际问题的解决。

三、教学方法为了达到课程目标,我们将采用以下教学方法:1.讲授法:通过讲解MATLAB的基本概念和操作方法,使学生掌握MATLAB的基本使用技巧。

2.案例分析法:分析实际案例,让学生学会将MATLAB应用于实际问题的解决。

3.实验法:安排上机实验,让学生动手操作,巩固所学知识。

4.讨论法:学生进行小组讨论,促进学生之间的交流与合作。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《MATLAB教程》或其他类似教材。

2.参考书:提供相关的参考书籍,供学生课后自学。

3.多媒体资料:制作课件和教学视频,辅助课堂教学。

4.实验设备:提供计算机实验室,让学生进行上机实验。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采取以下评估方式:1.平时表现:通过课堂参与、提问、讨论等方式,评估学生在课堂上的表现。

2.作业:布置适量的作业,评估学生对知识的掌握和应用能力。

matlab学习及图像显示方法.

matlab学习及图像显示方法.
1.用MATLAB编制程序,分别产生长度为N(由输入确定)的序列:
①单位冲击响应序列:可用MATLAB中zeros函数来实现;
答案:
t=-20:1:20;
x=zeros(size(t;
x(21=1;
plot(t,x;
②单位阶跃序列:U(n)可用MATLAB中ones函数来实现;
答案:
t=-20:1:20;
•Fft2(, ifft2(函数
•Imhist(函数
•Histeq(函数
•Imrotate(函数
•Imnoise(函数
•Edge(函数
•Title(函数•Xlable(,Ylable(函数
a=-0.2;
b=0.5;
K0=4;
N=40;
n=-N:1:N;
t=K0*exp.^(a+j*b*n;
参考流程图:
在计算机上实现正弦序列2sin( (0ϕπ+=fn A n x
答案:
A0=-0.2;
f=0.05;
pi=3.14;
K0=2/3*pi;
N=40;
n=-N:1:N;
x=A0*sin(2*pi*f*n+K0;
plot(n,x
二MATLAB的图像显示方法
试验目的
1.练习图像读写和显示函数的使用方法
2.掌握MATLAB支持的五AB函数(选做)
试验内容
1.图像的读
RGB=imread('D:\图像库\DIP3E_CH01\Fig0101(1921 digital image.tif';
x=[…,6,3,5,2,1,7,9,…]
一般程序都从0位置起始,则x= [x(0, x(1, x(2,…]对于多维信号需要建立矩阵来表示,矩阵的每个列向量代表一维信号。

图像直方图显示

图像直方图显示

实验四:显示图像直方图
一、实验目的
通过上机使学生对图像的灰度直方图有直观的印象,了解直方图的性质。

二、实验器材
计算机,Matlab软件
三、实验内容
1了解灰度直方图绘制方法;
2 在Matlab中显示各类型的图像的灰度直方图,根据直方图得出灰度图象的特征;
四、实验步骤
1 了解灰度直方图定义
灰度直方图反映的是一幅图像中各灰度级像素出现的频率。

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

它是图像的一个重要特征,反映了图像灰度分布的情况。

频率的计算式为
2 在MATLAB中用函数实现各个类型图象灰度直方图的绘制
函数imhist
3.填写实习报告表,提交结果。

  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。

相关文档
最新文档