当前位置:文档之家› 数字图像处理实验指导书

数字图像处理实验指导书

数字图像处理实验指导书
数字图像处理实验指导书

《数字图像处理与识别》

实验一 数字图像读、写及基本统计指标

一、实验目的

1.掌握图像读写和运算的基本的方法。

2.学会利用MATLAB 编写程序进行图像的基本操作。

3.理解图像信息的含义。

二、主要仪器设备

微机(CPU :P4以上,128M 以上内存)

Windows98以上操作系统、Visual C++、Matlab6.5以上版本等软件。

三、实验原理

1.可以将一幅图像看成是一个二维矩阵。

2.Matlab 图像处理工具具有读、写和显示图像功能。可采用imread 函数、imwrite 函数、imshow 函数,也可以自己编程。

3.计算图像的有关统计参数。

①图像的大小。数值是宽度(M ,单位:像素)与高度(N ,单位:像素)的乘积。

②图像的灰度平均值。是指所有灰度值的算术平均值,反应了一幅图像的平均亮度f 。

∑∑-=-==101

),(1M x N y y x f MN f ③协方差矩阵。设计),(y x f 和),(y x g 是大小为M хN 的两幅图像,则两幅图像的协方差矩阵fg C 为: ∑∑-=-=--=1010

]),(][),([1M x N y fg g y x g f y x f MN C 协方差矩阵fg C 是两图像之间的相关程度的一种量度。协方差矩阵为零时表明两图像之间相互独立,反之表示两图像之间相互依赖。fg C 越大,相关程序越高。若g f =,则单幅图像的协方差即为该图像的方差ff C 。

④图像的灰度标准差。由于方差按数据的平方来计算,与灰度值相差太大,难以直观衡量,所以对方差开方得到标准差SD ,标准差是评价离散度的较好指

标。 ff C SD =

⑤图像的相关系数。协方差可以作为两幅图像相关性的一种量度。但它受两图像像素数值的影响。因些,常将其归一化成相关系数。两幅图像),(y x f 和),(y x g 的相关系数fg r 是描述图像相关程度的统计量,反映了两幅图像相互的线性联系密切程度。相关系数在0~1范围内变动,其值越接近1,两个图像的线性相关越密切;其值越接近0,相关越不密切。 gg ff fg fg C C C r ?=

四、实验内容

1.从最常用的“.BMP”图像格式中读取图像数据,并显示图像;

2.利用“读图像文件I/O ”的iminfo 函数了解图像文件的基本信息。利用“像素和统计处理”函数计算读入图像的二维相关系数(corr2函数)、确定像素颜色值(impoxel 函数)、像素的平均值(mean 函数)、显示像素的信息(pixval 函数)、计算像素的标准偏移(std2函数)等。

3. 对图像进行改变大小(imresize 函数)、旋转(imrotate 函数)等几何操作,将不同操作后的图像用函数分别写入到各自的图像文件中。

五、实验步骤指导

1.读取文件rice.tif 和cameraman.tif 的图像数据,显示图像。读取图像文件的信息,说明含义。

MATLAB 函数:imread/imshow/imfinfo

举例: A=imread('rice.tif');

imshow(A);

2. 将rice.tif 和cameraman.tif 两副图像相加、相减,或者减去一个常数,显示并保存处理后的图像。

MATLAB 函数:imwrite/ imadd/ imsubtract;

举例: J=imread('cameraman.tif');

K=imadd(I,J);

3.将rice.tif 和cameraman.tif 两副图像改变大小(imresize 函数)、旋

转(imrotate函数)等几何操作,将不同操作后的图像用函数分别写入到各自的图像文件中。显示几何操作后的图像,读取图像文件的信息,并比较与几何操作前的有什么不同。

六、实验报告要求

1.说明读、写和显示图像文件、计算图像的有关统计参数的原理或方法。

2.显示几何变换前、后的图像,记录几何变换前、后的图像的统计数据。

3.写出上述图像处理的程序。

4.总结心得与体会。

七、思考题

1.位图图像有哪些基本的信息?

2.比较不同图像的统计特征的差别,并分析原因。

实验二 数字图像的去噪

一、实验目的

1.掌握图像滤波的基本原理。

2、掌握图像锐化的基本原理和方法。

3、学会运用不同滤波方法对图像去噪。

4、设计程序对图像进行去噪和锐化处理。

二、主要仪器设备

微机(CPU :P4以上,128M 以上内存)

Windows98以上操作系统、Visual C++、matlab6.5以上版本等软件。

三、实验原理

滤波分为非线性滤波和线性滤波。

1.均值滤波是一种线性滤波方法,其采用的主要方法为领域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x ,y ),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x ,y ),作为处理后图像在该点上的灰度值g (x ,y ),即个g (x ,y )=1/m ∑f(x ,y ) m 为该模板中包含当前像素在内的像素总个数。

2.中值滤波一种非线性的图像处理方法,中值滤波的原理就是用一个含有奇数点的滑动窗口,将窗口正中那点的值用窗口内各点的中值代替。

3.拉普拉斯算子如下:

????

??????--------111181111 拉普拉斯算子首先将自身与周围的8个像素相减,表示自身与周围像素的差异,再将这个差异加上自身作为新像素的灰度。

四、实验内容

(1) 给图像加噪声;

(2) 设计程序用均值滤波器去除图像中的噪声;

(3) 设计程序用中值滤波器去除图像中的噪声;

(4) 设计程序用拉普拉斯算子去除图像中的噪声

(5) 比较几种方法的处理结果

五、实验步骤指导

1. 读取某一图像文件,显示图像。

2. 运用函数产生随机噪声和椒盐噪声,叠加到图像数据上,显示加噪声后的图像。

3.运用conv2函数实现对含噪声的图象进行均值滤波。采用大小为3*3去心的去心邻域。(注意:数据运算时采用double函数转成浮点型,图像显示前必须运用uint8函数将数据变成8位无符号整型,)。比较不同窗口大小的情况下,均值滤波法的去噪效果。

4.运用中值滤波法对随机噪声和椒盐噪声进行去噪,改变窗口的大小,分析去噪效果。

5.比较均值滤波、中值滤波和拉普拉斯算子对两种噪声的去除情况。

6.再运用fspecial和filter2函数实现对含噪声的图象进行均值滤波。

六、实验报告要求

1.简述图像噪声形成的原因。

2.分别论述均值滤波器、中值滤波器的原理和方法。并比较他们的特点、指出他们的应用范围。

3.比较两种方法的处理结果,分析原因。

4.写出上述图像处理的程序。

5.总结心得与体会。

七、思考题

1.图像的去噪和锐化各有什么作用?

2.比较均值滤波和中值滤波在不同窗口大小的情况下对不同的噪声的去噪

效果。

3.常用的锐化算子有哪些?比较其锐化效果。

4.比较同一去噪方法、针对不同噪声处理的效果?

实验三 图像的边缘检测

一、实验目的

1.掌握图像边缘检测方法;

2.理解边缘检测在图像分割中应用

3.学会利用MATLAB 程序进行边缘检测。

二、主要仪器设备

微机(CPU :P4以上,128M 以上内存)

Windows98以上操作系统、Visual C++、matlab6.5以上版本等软件。

三、实验原理

边缘即图像中灰度发生急剧变化的区域边界。边缘检测的实质是采用某种算法来提取图像中对象与背景间的交界线。图像灰度的变化情况可以用图像灰度分布的梯度来反应,因此可以用局部图像微分技术来获得边缘检测算子。经典的边缘检测方法是对原始图像中像素的某小邻域来构造边缘检测算子。常采用差分、梯度、拉普拉斯算子及各种高通滤波处理方法对图像边缘进行检测。检测的方法有:梯度算子、拉普拉斯算子、方向算子、Canny 算子等。

Sobel 算子(Sobel operator )主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A 代表原始图像,Gx 及Gy 分别代表经横向及纵向边缘检测的图像,其公式如下:

A G x ???????????---=101202101 和 A G y ?????

??????---=121000121 图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。

2

2y x G G G +=

然后可用以下公式计算梯度方向。

???

? ??=Θx y G G arctan 如果以上的角度Θ等于零,即代表图像该处拥有纵向边缘,左方较右方暗。 Prewitt 算子采用以下算子分别计算一阶 x 方向和 y 方向的图像差分。在一个较大区域中,用两点的偏导数值来求梯度幅度值,受噪声干扰很大。若对两个点的各自一定领域内的灰度值求和,并根据两个灰度值和的差来计算x,y 的偏导数,则会在很大程度上降低噪声干扰。其系数加权模板如下:

1

01101101---=x G 11100

1

11---=y G 其运算:

)

1,1(1)1,(0)1,1()1(),1(1),(0),1(11,1(1)1,(0)1,1()1(++*++*++-*-++*+*+-*-+-+*+-*+--*-=y x f y x f y x f y x f y x f y x f y x f y x f y x f G x )()

)

1,1(1)1,(1)1,1(1),1(0),(0),1(01,1()1()1,()1()1,1()1(++*++*++-*++*+*+-*+-+*-+-*-+--*-=y x f y x f y x f y x f y x f y x f y x f y x f y x f G y )

y x G G y x G +=),( 。如果),(y x G 大于某一阈值,则认为(x,y )点为边缘点。

四、实验内容

1.分别用sobel 、Laplacian-Gaussian 等方法对一幅灰度图像进行边缘提取。

2.给出并分析对比结果。

3.利用双峰法对一幅灰度图像进行灰度分割处理。

4.运用conv2或者fspecial 、filter2函数实现各种的算子提取边沿。比较采用各种常用的算子的边沿提取的效果。

五、实验步骤指导

1.读取某一图像数据,显示图像。

2. 分别用sobel 、Laplace 等方法对其进行边缘提取。

3.对提取的结果进行比较。

4.利用双峰法对一幅灰度图像进行灰度分割处理

5.运用conv2或者fspecial、filter2函数实现各种的算子提取边沿。比较采用各种常用的算子的边沿提取的效果。

六、实验报告要求

1.叙述图像边缘检测的原理。

2.分别论述sobel、Laplace算子进行边缘检测的原理和方法。并比较他们的特点、指出他们的应用范围。

3.比较几种方法的处理结果,分析原因。

4.写出上述图像处理的程序。

5.总结心得与体会。

七、思考题

1.不同的边缘检测算子有何区别?

2.试评价Roberts 算子、Prewitt 算子、Sobel 算子对于噪声条件下边界检测的性能?

实验四灰度直方图及直方图均衡

一、实验目的

1.掌握灰度直方图的概念及其计算方法;

2.熟练掌握直方图均衡化和直方图规定化的计算过程;

3.学会利用直方图均衡处理图像。

二、主要仪器设备

微机(CPU:P4以上,128M以上内存)

Windows98以上操作系统、Visual C++、matlab6.5以上版本等软件。

三、实验原理

直方图是多种空间域处理技术的基础。直方图操作能有效地用于图像增强。除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为实时图像处理的一个流行工具。

直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。灰度直方图是图像预处理中涉及最广泛的基本概念之一。

图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。

直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。

用r和s分别表示归一化了的原图像灰度和经直方图变换后的图像灰度。即当r=s=0时,表示黑色;r=s=1时,表示白色;即r、s∈[0,1],这个范围表示像素灰度在黑白之间变化。

在[0,1]区间内的任一个r,经变换T(r)可产生一个s,且s= T(r) 。

T(r)为变换函数,它应当满足下列条件:

①在0≤r ≤1内为单调递增函数;

②在0≤r ≤1,有0≤T(r)≤1。

条件①保证灰度级人黑到白的次序不变;条件②确保映射后的像素灰度在允许的范围内。反变换关系为: r= T -1(s)

由概率论可知,如果已知随机变量r 的概率密度为)(r p r ,而随机变量s 是r 的函数,则s 的概率密度)(s p s 可以由)(r p r 求出。假定随机变量s 的分布函数用)(s F s 表示,根据分布函数定义:

??∞-∞-==s r

r s s dr r p ds s p s F )()()( (4.1) 根据概率密度函数是分布函数的导数的关系,(4.1)式两边对s 求导可得:

)]([)()(])([)(1s T ds

d r p ds dr r p dr r p ds d s p r r r r s -∞-===? (4.2) 从式(4.2)可以看出,通过变换函数T(r)可以控制图像灰度级的概率密度函数,从而改变灰度层次,这就是直方图均衡的基础。

从人眼视觉特性来考虑,一幅图像的灰度直方图如果是均匀分布的,即k s p s =)((归一化后k=1)时,感觉上该图像比较协调。

由于归一化假设: 1)(=s p s

由(4.2)式得:dr r p ds r )(=。 两边积分得:

?∞

-==r r dr r p r T s )()( (4.3) 式(4.3)就是所求得的变换函数。它表明当变换函数T(r)是原图像直方图累积分布函数时,能达到直方图均衡的目的。

对于灰度级离散的数字图像,用频率来代替概率,若灰度级数为L ,则变换函数)(k r T 的离散形式可表示为:

式中,10≤≤k r ,可见,均衡后各像素的灰度值s k 可直接由原图像的直方图算出。

四、实验内容

1.图像灰度直方图的绘制。

2.利用灰度直方图增强图像的对比度

1

,...,2,1,0 )()(00-====∑∑==L k n n r p r T s k j k j j j r k k

五、实验步骤

1.打开计算机,启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;

2.调入待处理的数字图像,并进行直方图均衡处理;

3.显示原图像及直方图和经过增强处理过的图像及其直方图。

4.记录和整理实验报告

六、实验报告要求

1.叙述直方图均衡的原理

2.简述实验过程;

3.提交实验的原始图像和结果图像,并进行有关分析比较。

4.总结心得与体会。

七、思考题

1.图像增强的目的是什么,有那些具体的方法?

2.直方图是什么概念?它反映了图像的什么信息?

实验五 图像几何变换

一、实验目的

1.熟悉CCS 集成开发环境的操作和基本功能;

2.熟悉视频显示程序的运行过程、控制过程,搞清数据处理、传输途径;

3.结合实例学习如何在视频显示程序中增加图像处理算法;

4.掌握图像的平移、垂直(水平)镜像变换、缩放和旋转的原理和应用;

二、主要仪器设备

微机(CPU :P4以上,128M 以上内存)

SEED-DTK_CPM642实验箱

MATLAB6.5或以上版本

三、实验原理

1. 初始坐标为(x , y )的点经过平移(0x ,0y ),坐标变为('x ,'y ),两

点之间的关系为:???+=+=0

0''y y y x x x ,以矩阵形式表示为:

????????????????????=??????????11

0 0y 1 0 0 11''00y x x y x 2. 图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为:

????????????????????-=??????????11 0 00 1 0 0 0 11''y x y x ????

????????????????=??????????11 0 00 1- 0 0 0 11''y x y x 3. 图像缩小和放大变换矩阵相同:

??????

??????????????=??????????11 0 00 0 0 0 1''y x y x S S y x

当1 ,1≤≤y x S S 时,图像缩小;1 ,1≥≥y x S S 时,图像放大。

4. 图像旋转定义为以图像中某一点为原点以逆时针或顺时针方向旋转一定角度。其变换矩阵为:

????

????????????????-=??????????11 0 00 cos sin 0 sin cos 1''y x y x θθθθ 该变换矩阵是绕坐标轴原点进行的,如果是绕一个指定点(b a ,)旋转,则现要将坐标系平移到该点,进行旋转,然后再平移回到新的坐标原点。

四、实验内容

1.在SEED-DTK_CPM642实验箱上分别进行平移、镜像变换、缩放和旋转等几何变换实验。

2.运用MATLAB 进行相关实验,并与上述实验进行比较。

五、实验步骤

1.实验准备

(1)连接设备

(2)开启设备:打开计算机电源、实验箱电源和显示器电源

(3)设置CCS 为Emulator 方式

(4)双击usb20emurst.exe,如果出现提示“SEED USB2.0 SDX510 CARD RESET,HARDWARE VERSION1”,证明仿真器与目标系统连接正常,否则检查电源和驱动。

2.打开工程目录,浏览相关源程序并理解含义。

3.编译、链接、下载程序并运行,观察显示。

4.启动MATLAB 程序,对图像文件分别进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作,与实验箱运行结果进行比对;

5.记录和整理实验报告

六、实验报告要求

1.叙述实验的原理与实验过程;

2.写出上述图像变换的程序。

3.提交实验的原始图像和结果图像

4.总结心得与体会。

七、思考题

1.改变水平和垂直的偏移量,观察显示?

2.改变缩放比例,看看效果如何?

3. 改变旋转角度,显示效果会怎么样?

实验六图像压缩编码

一、实验目的

1.理解图像压缩编码的目的和原则;

2.理解几种常用的图像压缩编码算法;

3.学会编写程序对图像进行压缩。

二、主要仪器设备

微机(CPU:P4以上,128M以上内存)

Windows98以上操作系统、Visual C++、matlab6.5以上版本、Photoshop 等软件。

三、实验原理

图像压缩主要目的是为了节省存储空间,增加传输速度。图像压缩的理想标准是信息丢失最少,压缩比例最大。不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。

编码压缩方法有许多种,从压缩编码算法原理上可以分为以下3类:

(1)无损压缩编码种类

哈夫曼(Huffman)编码,算术编码,行程(RLE)编码,Lempel zev编码。

(2)有损压缩编码种类

预测编码,DPCM,运动补偿;

频率域方法:正交变换编码(如DCT),子带编码;

空间域方法:统计分块编码;

模型方法:分形编码,模型基编码;

基于重要性:滤波,子采样,比特分配,矢量量化;

(3)混合编码。

有JBIG,H.26x,JPEG,MPEG等技术标准。

1.Huffman编码的原理

Huffman编码是一种可变长编码方式,是由美国数学家David Huffman创立的,是二叉树的一种特殊转化形式。编码的原理是:将使用次数多的代码转换成长度较短的代码,而使用次数少的可以使用较长的编码,并且保持编码的唯一可解性。Huffman算法的最根本的原则是:累计的(字符的统计数字*字符的编码长度)为最小,也就是权值(字符的统计数字*字符的编码长度)的和最小。

Huffman树是二叉树的一种特殊转化形式。例如:有以下数据:ABFACGCAHGBBAACECDFGFAAEABBB。先进行统计得结果:A(8) B(6) C(4) D(1) E(2) F(3) G(3) H(1),括号里面的是统计次数。生成Huffman树:每次取最小的那两个节点(node)合并成一个节点(node),并且将累计数值相加作为新的接点的累计数值,最顶层的是根节点(root) 注:列表中最小节点是指包括合并了的节点在内的所有节点,已经被合并的节点不在列表中编码和解码

编码:将ABCDEFGH用Huffman树产生的编码对应着写到文件中,并且保留原始的Huffman树,主要是编码段的信息。一般要编码256个元素的话需要511个单位来储存Huffman树,每个Huffman树都必须有以下的结构:code,char,left,right,probability(出现次数),通常情况是利用一个数组结构。因为在解码的时候只需要用到code,所以只需要记录每个元素的编码就可以了。

解码:利用文件中保存的Huffman编码,一一对应,解读编码,把可变长编码转换为定长编码。

由于Huffman编码需要扫描两次,第一次是统计数字,第二次是编码写文件,大大影响了速度,因此有人发明了enhanced Huffman aglorithm。这种算法只扫描一遍文件,动态产生Huffman树,即每读n个字节就重新编码一次Huffman 树,以达到提高速度的目的。

2.离散余弦变换(DCT)图像压缩原理

离散余弦变换DCT在图像压缩中具有广泛的应用,它是JPEG、MPEG等数据压缩标准的重要数学基础。JPEG有几种模式,其中最常用的是基于DCT变换的顺序型模式,又称为基本系统(Baseline)。

用DCT压缩图像的过程为:

(1)首先将输入图像分解为8×8或16×16的块,然后对每个子块进行二维DCT变换。

(2)将变换后得到的量化的DCT系数进行编码和传送,形成压缩后的图像格式。

用DCT解压的过程为:

(1)对每个8×8或16×16块进行二维DCT反变换。

(2)将反变换的矩阵的块合成一个单一的图像。

余弦变换具有把高度相关数据能量集中的趋势,DCT变换后矩阵的能量集中在矩阵的左上角,右下的大多数的DCT系数值非常接近于0。对于通常的图像来说,舍弃这些接近于0的DCT的系数值,并不会对重构图像的画面质量带来显著的下降。所以,利用DCT变换进行图像压缩可以节约大量的存储空间。压缩应该在最合理地近似原图像的情况下使用最少的系数。使用系数的多少也决定了压缩比的大小。

在压缩过程的第2步中,可以合理地舍弃一些系数,从而得到压缩的目的。在压缩过程的第2步,还可以采用RLE和Huffman编码来进一步压缩。

3.行程编码(RLE)原理:

例如如下这幅二值图像,

如果采用行程编码可以按如下格式保存

其中10和8表示图像的宽和高。在这个小例子中行程编码并没有起到压缩图像的作用。这是由于这个图的尺寸过小,当图像尺寸较大时行程编码还是不错的无损压缩方法。对于灰度图像和二值图像,用行程编码—般都有很高的压缩率。行程编码方法实现起来很容易,对于具有长重复值的串的压缩编码很有效,例如:对于有大面积的阴影或颜色相同的图像,使用这种方法压缩效果很好。很多位图文件格式都采用行程编码,如TIFF,PCX,GEM,BMP等。

四、实验内容

1.图像的压缩与解压

2.对同一图像,不同压缩方式下的图像数据量的比较

五、实验步骤

1.打开计算机,启动MATLAB程序;

2.调入获取的数字图像,并进行数据的编码压缩处理;然后进行解压,比较原图像与解压后的图像差别。

3.将原图像在Photoshop软件中打开,分别以不同的位图文件格式进行“另保存”,比较它们的数据量。

4.记录和整理实验报告

六、实验报告要求

1.叙述实验的原理与实验过程;

2.写出上述图像编码与解码的程序。

3.提交实验的原始图像和结果图像

4.总结心得与体会。

七、思考题

1.图像中哪些信息是主要的,哪些信息是次要的?

2.简述Huffman编码、离散余弦变换(DCT)和行程编码(RLE)的原理。

数字图像处理实验1

实验一 实验内容和步骤 练习图像的读取、显示和保存图像数据,步骤如下: (1)使用命令figure(1)开辟一个显示窗口 (2)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内显示、二值图像和灰度图像,注上文字标题。 (3)保存转换后的灰度图像和二值图像 (4)在同一个窗口显示转换后的灰度图像的直方图 I=imread('BaboonRGB.bmp'); figure,imshow(I); I_gray=rgb2gray(I); figure,imshow(I_gray); I_2bw=Im2bw(I_gray); figure,imshow(I_2bw); subplot(1,3,1),imshow(I),title('RGB图像'); subplot(1,3,2),imshow(I_gray),title('灰度图像'); subplot(1,3,3),imshow(I_2bw),title('二值图像'); imwrite(I_gray,'Baboongray.png'); imwrite(I_2bw,'Baboon2bw.tif'); figure;imhist(I_gray);

RGB 图 像灰度图 像二值图 像 050100150200250 500 1000 1500 2000 2500 3000

(5)将原RGB 图像的R 、G 、B 三个分量图像显示在figure(2)中,观察对比它们的特点,体会不同颜色所对应的R 、G 、B 分量的不同之处。 [A_RGB,MAP]=imread('BaboonRGB.bmp'); subplot(2,2,1),imshow(A_RGB),title('RGB'); subplot(2,2,2),imshow(A_RGB(:,:,1)),title('R'); subplot(2,2,3),imshow(A_RGB(:,:,2)),title('G'); subplot(2,2,4),imshow(A_RGB(:,:,3)),title('B'); (6)将图像放大1.5倍,插值方法使用三种不同方法,在figure(3)中显示放大后的图像,比较不同插值方法的结果有什么不同。将图像放大到其它倍数,重复实验;A=imread('BaboonRGB.bmp'); figure(3),imshow(A),title('原图像'); B=imresize(A,1.5,'nearest'); figure(4),imshow(B),title('最邻近法') C=imresize(A,1.5,'bilinear'); ; figure(5),imshow(C),title('双线性插值'); D=imresize(A,1.5,'bicubic'); figure(6),imshow(D),title('双三次插值 '); RGB R G B

武汉科技大学 数字图像处理实验报告

二○一四~二○一五学年第一学期电子信息工程系 实验报告书 班级:电子信息工程(DB)1102班姓名 学号: 课程名称:数字图像处理 二○一四年十一月一日

实验一图像直方图处理及灰度变换(2学时) 实验目的: 1. 掌握读、写、显示图像的基本方法。 2. 掌握图像直方图的概念、计算方法以及直方图归一化、均衡化方法。 3. 掌握图像灰度变换的基本方法,理解灰度变换对图像外观的改善效果。 实验内容: 1. 读入一幅图像,判断其是否为灰度图像,如果不是灰度图像,将其转化为灰度图像。 2. 完成灰度图像的直方图计算、直方图归一化、直方图均衡化等操作。 3. 完成灰度图像的灰度变换操作,如线性变换、伽马变换、阈值变换(二值化)等,分别使用不同参数观察灰度变换效果(对灰度直方图的影响)。 实验步骤: 1. 将图片转换为灰度图片,进行直方图均衡,并统计图像的直方图: I1=imread('pic.jpg'); %读取图像 I2=rgb2gray(I1); %将彩色图变成灰度图 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('灰度图'); subplot(3,2,4); imhist(I2); %统计直方图 title('统计直方图'); subplot(3,2,5); J=histeq(I2); %直方图均衡 imshow(J); title('直方图均衡'); subplot(3,2,6); imhist(J); title('统计直方图');

原 图 灰度图 01000 2000 3000统计直方图 100200直方图均衡 0统计直方图 100200 仿真分析: 将灰度图直方图均衡后,从图形上反映出细节更加丰富,图像动态范围增大,深色的地方颜色更深,浅色的地方颜色更前,对比更鲜明。从直方图上反应,暗部到亮部像素分布更加均匀。 2. 将图片进行阈值变换和灰度调整,并统计图像的直方图: I1=imread('rice.png'); I2=im2bw(I1,0.5); %选取阈值为0.5 I3=imadjust(I1,[0.3 0.9],[]); %设置灰度为0.3-0.9 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('阈值变换'); subplot(3,2,5); imshow(I3); title('灰度调整'); subplot(3,2,2); imhist(I1); title('统计直方图'); subplot(3,2,4);

数字图像处理实验指导书-河北工业大学2014实验一

数字图像处理 实验指导书 河北工业大学 计算机科学与软件学院

实验一 MATLAB数字图像处理初步 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像类型转换。 二、实验原理及知识点 1、数字图像的表示和类别 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化称为采样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。

图1 图像的采样和量化 根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: 亮度图像(Intensity images) 二值图像(Binary images) 索引图像(Indexed images) RGB图像(RGB images) (1) 亮度图像 一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。若图像是double类,则像素取值就是浮点数。规定双精度型归一化亮度图像的取值范围是[0,1] (2) 二值图像 一幅二值图像是一个取值只有0和1的逻辑数组。 (3) 索引图像 索引颜色通常也称为映射颜色,在这种模式下,颜色都是预先定义的,并且可供选用的一组颜色也很有限,索引颜色的图像最多只能显示256种颜色。 一幅索引颜色图像在图像文件里定义,当打开该文件时,构成该图像具体颜色的索引值就被读入程序里,然后根据索引值找到最终的颜色。(4) RGB图像 一幅RGB图像就是彩色像素的一个M×N×3数组,其中每一个彩色相

数字图像处理四个实验报告,带有源程序

数字图像处理 实验指导书 学院:通信与电子工程学院 专业:电子信息工程 班级: 学号: 姓名: XX理工大学

实验一 MATLAB数字图像处理初步 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像间如何转化。 二、实验原理及知识点 1、数字图像的表示和类别 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。 图1 图像的采样和量化 根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: 亮度图像(Intensity images) 二值图像(Binary images) 索引图像(Indexed images) RGB图像(RGB images)

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

数字图像处理实验(全完整答案)

数字图像处理实验(全 完整答案)

实验一常用 MATLAB图像处理命令 一、实验目的 1 、熟悉并掌握MA TLAB 工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 二、实验环境 MATLAB 6.5 以上版本、WIN XP或W IN2000计算机 三、常用函数 读写图像文件 1 imread imread 函数用于读入各种图像文件,如:a=imread('e:\w01.tif') 2 imwrite imwrite 函数用于写入图像文件,如:imwrite(a,'e:\w02.tif', ’tif ’) 3 imfinfo imfinfo 函数用于读取图像文件的有关信息,如:imfinfo('e:\w01.tif')图像的显示 1 image image 函数是 MATLAB提供的最原始的图像显示函数,如: a=[1,2,3,4;4,5,6,7;8,9,10,11,12]; image(a); 2 imshow imshow 函数用于图像文件的显示,如: i=imread('e:\w01.tif'); imshow(i); title (‘原图像’) %加上图像标题

3 colorbar colorbar 函数用显示图像的颜色条,如: i=imread('e:\w01.tif'); imshow(i); colorbar; 4 figure figure 函数用于设定图像显示窗口,如:figure(1) ;/figure(2) ; 5 subplot 把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。 Subplot (m,n,p)分成 m*n个小窗口,在第p 个窗口中创建坐标轴为当 前坐标轴,用于显示图形。 6 plot 绘制二维图形 plot (y) Plot (x,y)xy 可以是向量、矩阵。 图像类型转换 1 rgb2gray 把真彩图像转换为灰度图像 i=rgb2gray (j ) 2 im2bw 通过阈值化方法把图像转换为二值图像 I=im2bw(j ,level ) Level 表示灰度阈值,取值范围0~1(即0.n ),表示阈值取自原图像灰度范围的n%

数字图像处理实验指导书

实验一 Matlab图像处理工具箱的初步练习 一、实验目的和任务 1、初步了解与掌握MA TLAB语言的基本用法; 2、掌握MA TLAB语言中图象数据与信息的读取方法; 3、掌握在MA TLAB语言中图像类型的转换。 二、实验仪器、设备及材料 1、计算机 2、MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) 3、实验所需要的图片 三、实验原理 将数字图像的RGB表示转换为YUV表示; Y=0.30R+0.59G+0.11B U=0.70R-0.59G-0.11B V=-0.30R-0.59G+0.89B 四、实验步骤 1、阅读资料并熟悉MatLab的基本操作 2、读取MATLAB中的图象数据 3、显示MATLAB中的图象文件。用MATLAB在自建的文件夹中建立m文件,在这个文件的程序中,将MA TLAB目录下work文件夹中的tree.tif 图象文件读出,用到imread,imfinfo等命令,观察一下图象数据,了解一下数字图象在MA TLAB中的处理就是处理一个矩阵的本质。 4、将3中的图象显示出来(用imshow)。 5、对MA TLAB目录下work文件夹中的flowers.tif进行真彩色图像、索引色图像、灰度图像、二值图像之间的相互变换,并显示。 6、进行真彩色图像RGB(lenacolor.jpg)、YIQ图像、HSV图像、YcbCr图像的相互转换,并显示。 五、实验报告要求 1、描述实验的基本步骤; 2、用图片给出步骤4、5、6中取得的实验结果; 六、实验所需图片

lenacolor.jpg 七、实验注意事项 1、学生应提前预习 2、请大家在E盘建一个目录(matlab),在每次启动时都要将这个目录加入到MATLAB的搜索路径中,添加的方法为File----Set Path----Tool---Add Path 八、思考题 1、图像之间转换的基础是什么,为什么可以实现相互的转换 九、附录 MATLAB简介 (1) MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MA TLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因此用MA TLAB处理数字图像非常的方便。MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。 1、MATLAB中图象数据的读取 A、imread imread函数用于读入各种图象文件,其一般的用法为 [X,MAP]=imread(‘filename’,‘fmt’) 其中,X,MAP分别为读出的图象数据和颜色表数据,fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。 例:[X,MAP]=imread(’flowers.tif’,’tif’);

数字图像处理实验指导书模板

《数字图像处理》实验指导书 编写: 罗建军 海南大学三亚学院 10月

目录 一、概述 ....................................................................... 错误!未定义书签。 二、建立程序框架 ....................................................... 错误!未定义书签。 三、建立图像类 ........................................................... 错误!未定义书签。 四、定义图像文档实现图像读/写.............................. 错误!未定义书签。 五、实现图像显示 ....................................................... 错误!未定义书签。 六、建立图像处理类................................................... 错误!未定义书签。 七、实现颜色处理功能............................................... 错误!未定义书签。 (一) 亮度处理................................................................. 错误!未定义书签。 (二) 对比度处理............................................................. 错误!未定义书签。 (三) 色阶处理................................................................. 错误!未定义书签。 (四) 伽马变换................................................................. 错误!未定义书签。 (五) 饱和度处理............................................................. 错误!未定义书签。 (六) 色调处理................................................................. 错误!未定义书签。 八、实现几何变换功能............................................... 错误!未定义书签。 (一) 图像缩放................................................................. 错误!未定义书签。 (二) 旋转......................................................................... 错误!未定义书签。 (三) 水平镜像................................................................. 错误!未定义书签。 (四) 垂直镜像................................................................. 错误!未定义书签。 (五) 右转90度................................................................. 错误!未定义书签。 (六) 左转90度................................................................. 错误!未定义书签。 (七) 旋转180度............................................................... 错误!未定义书签。 九、实现平滑锐化功能............................................... 错误!未定义书签。 十、图像处理扩展编程............................................... 错误!未定义书签。

数字图像处理实验 实验二

实验二MATLAB图像运算一、实验目的 1.了解图像的算术运算在数字图像处理中的初步应用。 2.体会图像算术运算处理的过程和处理前后图像的变化。 二、实验步骤 1.图像的加法运算-imadd 对于两个图像f x,y和 (x,y)的均值有: g x,y=1 f x,y+ 1 (x,y) 推广这个公式为: g x,y=αf x,y+β (x,y) 其中,α+β=1。这样就可以得到各种图像合成的效果,也可以用于两张图像的衔接。说明:两个示例图像保存在默认路径下,文件名分别为'rice.png'和'cameraman.tif',要求实现下图所示结果。 代码: I1 = imread('rice.png'); I2 = imread('cameraman.tif'); I3 = imadd(I1, I2,'uint8'); I4 = imadd(I1, I2,'uint16'); subplot(2, 2, 1), imshow(I1), title('?-ê?í???1'); subplot(2, 2, 2), imshow(I2), title('?-ê?í???2'); subplot(2, 2, 3), imshow(I3), title('8??í?????ê?'); subplot(2, 2, 4), imshow(I4), title('16??í?????ê?'); 结果截图:

2.图像的减法运算-imsubtract 说明: 背景图像可通过膨胀算法得到background = imopen(I,strel('disk',15));,要求实现下图所示结果。 示例代码如下: I1 = imread('rice.png'); background = imerode(I1, strel('disk', 15)); rice2 = imsubtract(I1, background); subplot(2, 2, 1), imshow(I1), title('?-ê?í???'); subplot(2, 2, 2), imshow(background), title('±3?°í???'); subplot(2, 2, 3), imshow(rice2), title('′|àíoóμ?í???'); 结果截图: 3.图像的乘法运算-immultiply

数字图像处理实验报告

数字图像处理实验 报告 学生姓名:学号: 专业年级: 09级电子信息工程二班

实验一常用MATLAB图像处理命令 一、实验内容 1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 实验结果如右图: 代码如下: Subplot (1,3,1) i=imread('E:\数字图像处理\2.jpg') imshow(i) title('RGB') Subplot (1,3,2) j=rgb2gray(i) imshow(j) title('灰度') Subplot (1,3,3) k=im2bw(j,0.5) imshow(k) title('二值') 2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (3,2,1) i=imread('E:\数字图像处理 \16.jpg') x=imresize(i,[250,320]) imshow(x) title('原图x') Subplot (3,2,2) j=imread(''E:\数字图像处理 \17.jpg') y=imresize(j,[250,320]) imshow(y) title('原图y') Subplot (3,2,3) z=imadd(x,y) imshow(z)

title('相加结果');Subplot (3,2,4);z=imsubtract(x,y);imshow(z);title('相减结果') Subplot (3,2,5);z=immultiply(x,y);imshow(z);title('相乘结果') Subplot (3,2,6);z=imdivide(x,y);imshow(z);title('相除结果') 3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (2,2,1) i=imread('E:\数字图像处理 \23.jpg') imshow(i) title('原图') Subplot (2,2,2) J = imadjust(i,[],[],3); imshow(J) title('变暗') Subplot (2,2,3) J = imadjust(i,[],[],0.4) imshow(J) title('变亮') Subplot (2,2,4) J=255-i Imshow(J) title('变负') 二、实验总结 分析图像的代数运算结果,分别陈述图像的加、减、乘、除运算可能的应用领域。 解答:图像减运算与图像加运算的原理和用法类似,同样要求两幅图像X、Y的大小类型相同,但是图像减运算imsubtract()有可能导致结果中出现负数,此时系统将负数统一置为零,即为黑色。 乘运算实际上是对两幅原始图像X、Y对应的像素点进行点乘(X.*Y),将结果输出到矩阵Z中,若乘以一个常数,将改变图像的亮度:若常数值大于1,则乘运算后的图像将会变亮;叵常数值小于是,则图像将会会暗。可用来改变图像的灰度级,实现灰度级变换,也可以用来遮住图像的某些部分,其典型应用是用于获得掩膜图像。 除运算操作与乘运算操作互为逆运算,就是对两幅图像的对应像素点进行点(X./Y), imdivide()同样可以通过除以一个常数来改变原始图像的亮度,可用来改变图像的灰度级,其典型运用是比值图像处理。 加法运算的一个重要应用是对同一场景的多幅图像求平均值 减法运算常用于检测变化及运动的物体,图像相减运算又称为图像差分运算,差分运算还可以用于消除图像背景,用于混合图像的分离。

数字图像处理程序

数字图像处理程序

数字图像处理实验 图像处理实验(一)直方图 灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特 征更加明显。 灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像 增强。 1、灰度直方图 (1)计算出一幅灰度图像的直方图 clear close all I=imread('004.bmp'); imhist(I) title('实验一(1)直方图'); (2)对灰度图像进行简单的灰度线形变换, figure subplot(2,2,1) imshow(I); title('试验2-灰度线性变换'); subplot(2,2,2) histeq(I); (3)看其直方图的对应变化和图像对比度的变化。 原图像 f(m,n) 的灰度范围 [a,b] 线形变换为图像 g(m,n),灰度范围[a’,b’]公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a) figure subplot(2,2,1) imshow(I) J=imadjust(I,[0.3,0.7],[0,1],1); title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换 '); subplot(2,2,2) imshow(J) subplot(2,2,3) imshow(I) J=imadjust(I,[0.5 0.8],[0,1],1); subplot(2,2,4) imshow(J) (4) 图像二值化(选取一个域值,(5) 将图像变为黑白图像) figure subplot(2,2,1)

数字图像处理——彩色图像实验报告

6.3实验步骤 (1)对彩色图像的表达和显示 * * * * * * * * * * * *显示彩色立方体* * * * * * * * * * * * * rgbcube(0,0,10); %从正面观察彩色立方体 rgbcube(10,0,10); %从侧面观察彩色立方 rgbcube(10,10,10); %从对角线观察彩色立方体 %* * * * * * * * * *索引图像的显示和转换* * * * * * * * * * f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %rgb图像转换成8色索引图像,不采用抖动方式 [X1,map1]=rgb2ind(f,8,'nodither'); figure,imshow(X1,map1); %采用抖动方式转换到8色索引图像 [X2,map2]=rgb2ind(f,8,'dither'); figure,imshow(X2,map2); %显示效果要好一些 g=rgb2gray(f); %f转换为灰度图像 g1=dither(g);%将灰色图像经过抖动处理,转换打二值图像figure,imshow(g);%显示灰度图像 figure,imshow(g1);%显示抖动处理后的二值图像 程序运行结果:

彩色立方体原图 不采用抖动方式转换到8色索引图像采用抖动方式转换到8色索引图像 灰度图像抖动处理后的二值图像

(2)彩色空间转换 f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %转换到NTSC彩色空间 ntsc_image=rgb2ntsc(f); figure,imshow(ntsc_image(:,:,1));%显示亮度信息figure,imshow(ntsc_image(:,:,2));%显示色差信息figure,imshow(ntsc_image(:,:,3));%显示色差信息 %转换到HIS彩色空间 hsi_image=rgb2hsi(f); figure,imshow(hsi_image(:,:,1));%显示色度信息figure,imshow(hsi_image(:,:,2)); %显示饱和度信息figure,imshow(hsi_image(:,:,3));%显示亮度信息 程序运行结果: 原图 转换到NTSC彩色空间

数字图像处理实验报告(完整版)

数字图像处理 实验一 MATLAB数字图像处理初步 一、显示图像 1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 实验结果如下图: 源代码: >>I=imread('lily.tif') >> whos I >> imshow(I) 二、压缩图像 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。7.用imread()读入图像Sunset.jpg和Winter.jpg; 8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小; 9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。其中9的实验结果如下图:

源代码: 4~6(接上面两个) >>I=imread('lily.tif') >> imfinfo 'lily.tif'; >> imwrite(I,'lily.jpg','quality',20); >> imwrite(I,'lily.bmp'); 7~9 >>I=imread('Sunset.jpg'); >>J=imread('Winter.jpg') >>imfinfo 'Sunset.jpg' >> imfinfo 'Winter.jpg' >>figure(1),imshow('Sunset.jpg') >>figure(2),imshow('Winter.jpg') 三、二值化图像 10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。实验结果如下图: 源代码: >> I=imread('lily.tif') >>gg=im2bw(I,0.4); F>>igure, imshow(gg)

数字图像处理实验指导书

实验一数字图像处理编程基础 一、实验目的 1. 了解MATLAB图像处理工具箱; 2. 掌握MATLAB的基本应用方法; 3. 掌握MATLAB图像存储/图像数据类型/图像类型; 4. 掌握图像文件的读/写/信息查询; 5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法; 6. 编程实现图像类型间的转换。 二、实验原理 略。 三、实验内容 1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。 2. 运行图像处理程序,并保存处理结果图像。 四、分析思考 归纳总结Matlab各个基本指令。 Dither 采用“抖动”方法从RGB 图像创建索引图像 grayslice 从灰度图像通过阈值处理创建索引图像 gray2ind 从灰度图像创建索引图像 ind2gray 从索引图像创建灰度图像 rgb2ind 从RGB 图像创建索引图像 ind2rgb 从索引图像创建RGB 图像 rgb2gray 从RGB 图像创建灰度图像

实验二 图像几何变换实验 一、实验目的 1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果; 2.掌握图像平移、剪切、缩放、旋转、镜像等几何变换的算法原理及编程实现; 3.掌握matlab 编程环境中基本的图像处理函数。 二、实验原理 1. 初始坐标为(,)x y 的点经过平移00(,)x y ,坐标变为(',')x y ,两点之间的关系为:00 ''x x x y y y =+??=+?,以矩阵形式表示为: 00'10'01100 11x x x y y y ????????????=?????????????????? 2. 图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为: '100'01010011x x y y -????????????=?????????????????? '100'01010011x x y y ????????????=-?????????????????? 3. 图像缩小和放大变换矩阵相同: '00'0010011X y x S x y S y ????????????=?????????????????? 当1x S ≤,1y S ≤时,图像缩小;当1x S ≥,1y S ≥时,图像放大。 4. 图像旋转定义为以图像中某一点为原点以逆时针或顺时针方

数字图像处理实验报告

数字图像处理实验报告

实验一数字图像处理编程基础 一、实验目的 1. 了解MA TLAB图像处理工具箱; 2. 掌握MA TLAB的基本应用方法; 3. 掌握MA TLAB图像存储/图像数据类型/图像类型; 4. 掌握图像文件的读/写/信息查询; 5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法; 6. 编程实现图像类型间的转换。 二、实验内容 1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。 2. 运行图像处理程序,并保存处理结果图像。 三、源代码 I=imread('cameraman.tif') imshow(I); subplot(221), title('图像1'); imwrite('cameraman.tif') M=imread('pout.tif') imview(M) subplot(222), imshow(M); title('图像2'); imread('pout.bmp') N=imread('eight.tif') imview(N) subplot(223), imshow(N); title('图像3'); V=imread('circuit.tif') imview(V) subplot(224), imshow(V); title('图像4');

N=imread('C:\Users\Administrator\Desktop\1.jpg') imshow(N); I=rgb2gary(GRB) [X.map]=gary2ind(N,2) RGB=ind2 rgb(X,map) [X.map]=gary2ind(I,2) I=ind2 gary(X,map) I=imread('C:\Users\dell\Desktop\111.jpg'); subplot(231),imshow(I); title('原图'); M=rgb2gray(I); subplot(232),imshow(M); [X,map]=gray2ind(M,100); subplot(233),imshow(X); RGB=ind2rgb(X,map); subplot(234),imshow(X); [X,map]=rbg2ind(I); subplot(235),imshow(X); 四、实验效果

数字图像处理实验

《数字图像处理》 实验报告 学院:信息工程学院 专业:电子信息工程 学号: 姓名: 2015年6月18日

目录 实验一图像的读取、存储和显示 (2) 实验二图像直方图分析 (6) 实验三图像的滤波及增强 (15) 实验四噪声图像的复原 (19) 实验五图像的分割与边缘提取 (23) 附录1MATLAB简介 (27)

实验一图像的读取、存储和显示 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像的显示。 二、实验原理 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 三、实验设备 (1) PC计算机 (2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) (3) 实验所需要的图片 四、实验内容及步骤 1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件设为flower.jpg语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。 7.用imread()读入图像:Lenna.jpg 和camema.jpg; 8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;

相关主题
文本预览
相关文档 最新文档