当前位置:文档之家› (整理)数字图像处理实验指导书 _贵州大学

(整理)数字图像处理实验指导书 _贵州大学

(整理)数字图像处理实验指导书 _贵州大学
(整理)数字图像处理实验指导书 _贵州大学

计算机科学与信息学院

《数字图像处理》

实验指导书

适用专业:信息安全、网络工程、计算机

贵州大学

二O一三年五月

前言

本指导书是根据数字图像处理教学大纲和实验大纲编写的,在教学过程中指导学生实验时使用。运用MATLAB软件平台,结合图像处理工具箱,对图像处理相关算法进行编程和实现。通过学生上机操作实践与教师指导,使学生深入理解和掌握数字图像处理的技术和方法,增强处理实际问题的能力。

考虑到《数字图像处理》课程的自身特点,以及软件的升级更新性,本实验指导书具有适应性。

本实验指导书主要适用于计算机科学与信息学院的各个相关专业。

目录

实验一图像基本操作 (4)

实验二图像增强 (7)

实验三图像分割 (11)

实验四汽车牌照自动识别 (16)

实验报告的基本内容及要求 (18)

贵州大学实验报告 (19)

实验一图像基本操作

实验学时:2

实验类型:验证

实验要求:必做

一、实验目的

利用MATLAB软件,熟悉图像的数据矩阵操作、图像的类型转换及图像的存储等基本操作。

1.熟悉图像矩阵的基本操作

2.掌握图像数据类型转换及图像类型转换

3.掌握图像文件的读写

4.掌握图像及灰度图像直方图的显示

5.掌握图像缩放和旋转

二、实验原理和方法

1.关于图像矩阵

MATLAB中图像数据以矩阵方式的存储。所以有必要学会关于矩阵的操作,由于篇幅有限,这里只作简要的介绍。

生成矩阵的函数有:

eye 生成单位矩阵 ones全1阵 zeros 全零阵

rand 均匀随机阵 randn 正态随机阵

2.图像数据类型及图像类型

2.1 图像数据类型转换

MATLAB中图像数据矩阵的存储方式为双精度(double)类型即64位浮点数。而存储图像时MATLAB有时采用无符号整型(uint8)即图像矩阵中的每个数据占用一个字节。由于大多数运算和函数(比如最基本的矩阵加减运算)都不支持uint8类型,所以运算时通常要将图像转换成 double型。

函数double将数据转换为双精度浮点类型,调用格式为:

X64=double(x8) /256

2.2 图像类型及转换

在MATLAB中,一幅图像可能包含一个数据矩阵,也可能有一个颜色映像表矩阵。MATLAB图像处理工具箱支持四种图像类型,其区别在于数据矩阵元素的不同含意。它们是:● 真彩色图像

● 索引图像

● 灰度图像

● 二值图像

(1)真彩色图像

真彩色图像又称RGB图像,对于一个尺寸为M×N的彩色图像来说,在MATLAB中则存储为一个M×N×3的多维数组,像素的颜色由保存在像素位置上的R、G、B的强度值的组合来确定。如果需要知道图像A中(x,y)处的像素值,则可以使用这样的代码A(x,y,1:3)。

(2)索引图像

MATLAB中的索引图像包含两个结构,一个是调色板,一个是图像数据矩阵。调色板是一个m×3的色彩映射矩阵,矩阵的每一行都代表一种色彩,与真彩色图像相同,通过3个分别代表红、绿、蓝颜色强度的双精度数,形成一种特定的颜色。调色板通常和索引图像存在一起,当读入图像时,MATLAB同时加载调色板和图像。

(3)灰度图像

灰度图像就是只有强度信息,而没有颜色信息的图像。存储灰度图像只需要一个数据矩阵,矩阵的每个元素表示对应位置像素的灰度值,灰度图像的数据类型可以是doubIe类型,这时值域为[0,1],也可以uint8类刑,值域是[0,255]。

(4)二值图像

二值图像就是只有黑白两种值的图像,我们可以把它看作是特殊的灰度图像。二值图像只需一个数据矩阵来存储,每个像素只取0或1。

MATLAB提供了若干函数,用于图像类型的转换,这些函数如下所示:

●rgb2gray 将RGB图像转换成灰度图像

●Gray2ind 将灰度图像转换成索引图像

●Im2bw 设定阈值将图像转换为二值图像

●Im2double 将图像数据阵列转换为double型

●Im2unit8 将图像数据阵列转换为unit8型

●Im2unit16 将图像数据阵列转换为unit16型

●Ind2gray 将索引图像转换为灰度图像

●Ind2rgb 将索引图像转换成真彩色图像

2.3 图像读写及显示

MATLAB为用户提供了专门的函数以从图像格式的文件中读写图像数据。

(1)图像文件的读取

利用imread函数可以完成图像文件的读取操作,常见调用格式为:

A = imread(FILENAME,FMT)

其作用是将文件名用字符串FILENAME表示的、扩展名用字符串FMT(表示图像文件格式)表示的图像文件中的数据读到矩阵A中。如果FILENAME所指的为灰度图像,则A为M×N的二维矩阵;如果FILENAME所指的为RGB图像,则A为M×N×3的三维矩阵。

(2)图像文件的写入(保存)

利用imwrite函数完成图像的写入操作,也完全支持上述各种图像文件的格式,其常用的调用格式为:

imwrite(A,FILENAME,FMT)

(3)图像文件的显示

MATLAB的图像处理工具箱提供了多种图像显示技术。例如,imshow函数可以直接从文件显示多种类型的图像;image函数可以将矩阵作为图像显示;colorbar函数可以用来显示颜色条。

●imshow函数是最常用的显示各种图像的函数,格式为:

●imshow(I,n); %显示灰度矩阵I, n设置显示的灰度值范围(级数),默认值为256。

●imshow(RGB) %显示真彩色图像

●imshow filename %直接显示图像,但图像数据不在MATLAB的workspace中。

可以将多幅图像显示在一个图形窗口中,达到这一目的有两种方法:一种方法是联合使用subplot函数和imshow函数,但此方法在一个图形窗口只能有一个调色板;另一种方法是联合使用subplot函数和subimage函数,此方法可在一个图形窗口内使用多个调色板。

subplot函数将一个图形窗口划分为多个显示区域,其调用格式如下:

subplot(m,n,p)

subplot函数将图形窗口划分为m(行)×n(列)个显示区域,并选择第p个区域作为当前绘图区。

(4)灰度直方图的显示

MATLAB图像处理工具箱提供了imhist函数来计算和显示图像的直方图,imhist函数的语法格式为:

imhist(I, n)

imhist(X, MAP)

其中imhist(I,n)计算和显示灰度图像I的直方图,n为指定的灰度级数目,默认值为256。imhist(X, MAP)计算和显示索引色图像X的直方图,map为调色板。

3.图像的几何运算

3.1 图像的缩放

MATLAB图像处理工具箱中的函数imresize可以用三种方法对图像进行插值缩放,如果不指定插值方法,则默认为最邻近插值法。imresize函数的语法格式为:

B = imresize(A, m, method), 返回原图像A的m倍放大的图像(m小于1时效果是缩小)。

这里参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。

B = imresize(A, [numrows numcols]),返回的图像B具有由[numrows numcols]指定的行、列数。

3.2 图像的旋转

在工具箱中的函数imrotate可用上述三种方法对图像进行插值旋转,默认的插值方法也是最邻近插值法。imrotate的语法格式为:

B = imrotate(A, angle, method)

函数imrotate对图像进行旋转,参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。一般说来旋转后的图像会比原图大,超出原图部分值为0。

三、实验内容和步骤

练习图像的读取、显示和保存图像数据,步骤如下:

(1)使用命令figure(1)开辟一个显示窗口

(2)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内显示RGB图像、二值图像和灰度图像,注上文字标题。

(3)保存转换后的灰度图像和二值图像

(4)在同一个窗口显示转换后的灰度图像的直方图

(5)将原RGB图像的R、G、B三个分量图像显示在figure(2)中,观察对比它们的特点,体会不同颜色所对应的R、G、B分量的不同之处。

(6)将图像放大1.5倍,插值方法使用三种不同方法,在figure(3)中显示放大后的图像,比较不同插值方法的结果有什么不同。将图像放大到其它倍数,重复实验;

(7)图像顺时针旋转30度,插值方法使用三种不同方法,在figure(3)中显示旋转后的图像并比较结果有什么不同。

四、实验报告

基本内容详见附件。

实验二图像增强

实验学时:2

实验类型:验证

实验要求:必做

一、实验目的

熟悉数字图像增强的一般方法,包括:

1.掌握空域变换增强的原理、方法

2.掌握灰度变换的图像增强方法

二、实验原理和方法

术语‘空间域’指的是图像平面本身,在空间与内处理图像的方法是直接对图像的像素进行处理。空间域处理方法分为两种:灰度级变换、空间滤波。空间域技术直接对像素进行操作,其表达式为

g(x,y)=T[f(x,y)]

其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y)的指定领域内。

定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y)的正方形或长方形区域,。此区域的中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域会包含不同的领域。T应用于每个位置(x,y),以便在该位置得到输出图像g。在计算(x,y)处的g值时,只使用该领域的像素。

灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f在该点处的亮度决定,T也变为一个亮度或灰度级变化函数。当处理单设(灰度)图像时,这两个术语可以互换。由于亮度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式:s=T(r)

其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。

1.空间域滤波

1.1 噪声模拟

图像平滑滤波主要是针对图像的各种噪声而言的,因此需要模拟数字图像的各种噪声来分析滤波效果。MATLAB的图像处理工具箱提供了imnoise函数,可以用该函数给图像添加不同种类噪声,其语法格式为:

参数

1.2均值滤波

平滑线形空间滤波的输出(响应)是包含在滤波掩模邻域内像素的简单平均值。因此,这些滤波器也称均值滤波器,指的是低通滤波器。它是用滤波掩模确定的邻域内像素的平均灰度值代替图像中每个像素点的值,这种处理减小了图像灰度的“尖锐”变化。

图1显示了两个33?的平滑滤波器。第一个滤波器产生掩模下的标准像素平均值,把掩模系数代入式

z w z w z w z w i

i i R ∑==+++=9

1

992211 (1)

(w 为掩模系数,z 为与该系数对应的灰度值)即可得

∑==9

191i i

z R (2)

图1 两个33?均值滤波器掩模。

R 是由掩模定义的33?邻域像素灰度的平均值。一个n m ?掩模应有mn 1的归一化常

数。图1第二种掩模更重要,也称加权平均,处于掩模中心位置的像素比其他任何像素就显得不太重要 。由于对角项离中心比离正交方向相邻的像素更远,所以它的重要性比与中心直接相邻的四个像素低。把中心点加强的最高,而随着距中心加强为最高,而随着距中心点距离的增加减小系数值,是为了减小平滑处理中的模糊。所有系数的和是16,2的整数次幂,便于计算机的实现。

一幅N M ?的图像经过一个n m ?(m 和n 是奇数)的加权均值滤波器滤波的过程可由下式给出:

)())

(()

(∑∑∑∑-=-=-=-=++=

a a s b

b

t a a s b

b

t t s w t y s x f t s w y x g ,,,, (3)

可理解为一幅完全滤波的图像是由对1,2,1,0-=M x 和1,2,1,0-=N y 执行式(3)得到的。 1.3 中值滤波

统计滤波器是一种非线性的空间滤波器,它的响应基于图像滤波器包围的图像区域中像素的排列,然后用统计排序结果决定的值代替中心像素的值。统计滤波器中最常见的例子是中值滤波器,是将邻域内像素灰度的中值代替该像素的值。对处理椒盐噪声非常有效。 1.4 图像滤波函数:filter2、imfilter

MATLAB 提供了基于卷积的图像滤波函数filter2进行平滑滤波,该函数用指定的滤波器模板对图像进行运算。其调用格式为:

B = filter2(h,A)

B = filter2(h,A,shape)

其中B=filter2(h,A)返回图像A经算子h滤波后的结果,参数shape指定滤波的计算范围,即:

●shape=’full’时,作边界补零

●shape=’same’时,返回图像B与输入图像A大小相同

●shape=’valid’时,不考虑边界补零,只计算有效输出部分。

此外,也可以使用imfilter函数进行卷积或相关性滤波来实现图像平滑。该函数的调用格式为:

B = imfilter(A,H)

B = imfilter(A,H, OPTION1,OPTION2,…)

其中B=imfilter(A,H)返回图像A经算子h滤波后的结果;

B=imfilter(A,H,OPTION1,OPTION2,…)是根据指定的OPTION参数实现图像滤波。OPTION 参数可以有下列取值:

●边界填充选项

对一幅图像进行滤波时,零填充可能会导致图像被一个黑框围绕,为了消除零填充的人工痕迹,imfilter函数支持三种可选的边界填充方法:

’symmetric’边界对称

’replicate’边界复制,缺省值

’circular’边界循环

●输出尺寸选项

其选项与filter2函数的shape参数相同。

●滤波选项

’corr’使用相关性来进行滤波,缺省使用此方法

’conv’使用卷积方法实现滤波

以上两个滤波函数的参数h可以是自定义的滤波器模板,也可以是MATLAB提供的预定义滤波器模板。函数fspecial生成滤波所用的预定义模板。其调用格式为:

h = fspecial(TYPE)

h = fspecial(TYPE,PARAMETERS)

其中,参数type指定滤波器的种类,parameters是与滤波器种类有关的具体参数,下表

1.5 中值滤波器函数:medfilt2

调用格式为:

B = medfilt2(A)

B = medfilt2(A,[M N])

其中,A是输入图像,B是中值滤波后输出的图像。[M N]指定滤波模板的大小,默认模板是3×3的。

2. 灰度级修正 2.1对比度调整

如果原图像f (x , y )的灰度范围是[m , M ],我们希望对图像的灰度范围进行线性调整,调整后的图像g (x , y )的灰度范围是[n , N ],那么下述变换:

[]n m y x f m

M n

N y x g +---=

),(),(

就可以实现这一要求。

MATLAB 图像处理工具箱中提供的imadjust 函数,可以实现上述的线性变换对比度调整。imadjust 函数的语法格式为:

J = imadjust(I,[low_in high_in],[low_out high_out],gamma)

I 是输入图像矩阵,J 是经过灰度变换后的图像矩阵。Low_in 和high_in 参数分别用来指定输入图像需要映射的灰度范围,Low_out 和high_out 参数指定输出图像所在的灰度范围。灰度范围可以用 [ ] 空矩阵表示默认范围,默认值为[0, 1]。Gamma 是一个可选参数,用于指定图像I 与J 之间映射的关系:gamma=1表示线性映射;gamma<1表示弱映射;gamma>1表示强映射,缺省时为1。 2.2 直方图均衡化

直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将一已知灰度概率密度分布的图像,经过某种变换变成一幅具有均匀灰度概率密度分布的新图像,从而改善图像的灰度层次。

MATLAB 图像处理工具箱中提供的histeq 函数,可以实现直方图的均衡化。对于灰度图像,histeq 函数的基本调用格式为

J=histeq(I, n)

该函数返回原图像I 经过直方图均衡化处理后的新图像J 。n 为指定的均衡化后的灰度级数,缺省值为64。

三、实验内容和步骤

练习图像的读取、显示和保存图像数据,步骤如下:

(1)读出汽车牌照的灰度图像。给读出的图像加入高斯噪声。

(2)分别采用不同大小的模板 (3*3,5*5)对加有噪声的图像进行均值滤波,用一个图像处理对话框显示原图像、加有噪声的图像及均值滤波的图像。比较结果。

(3)分别采用不同大小的模板(3*3,5*5)对加有噪声的图像进行中值滤波,用一个图像处理对话框显示原图像、加有噪声的图像及中值滤波的图像。比较结果。

(4)采用大小相同的模板对加有噪声的图像分别进行均值滤波和中值滤波,用一个图像处理对话框显示原图像、加有噪声的图像、均值滤波的图像及中值滤波的图像。比较结果。

(5)给图像加入椒盐噪声,重复均值滤波和中值滤波,比较结果。

(6)对汽车牌照的灰度图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。

(7)用histeq 函数将汽车牌照图像的灰度直方图均衡化,同时观察均衡化后的图像与前面图像的差别,均衡化后的灰度直方图与前面的灰度直方图的区别。

四、实验报告

基本内容详见附件。

实验三 图像分割

实验学时:2 实验类型:验证

实验要求:必做 一、实验目的

1、理解图像边缘提取的基本概念;

2、熟悉进行边缘提取的基本方法;

3、掌握用MA TLAB 语言进行图像边缘提取的方法

4、用形态学运算实现灰度图像的噪声平滑和图像边缘提取。

二、实验原理和方法

图像理解是图像处理的一个重要分支,他研究为完成某一任务需要从图像中提取哪些有用的信息,以及如何利用这些信息解释图像。边缘检测技术对于处理数字图像非常重要,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同的区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度,颜色或者纹理特征。边缘检测实际上就是检测图像特征发生变化的位置。

由于噪声和模糊的存在,检测到的边界可能会变宽或在某些点处发生间断,因此,边界检测包括两个基本内容:首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。 1. 基于导数算子的边缘检测

边缘检测的方法大多数是基于方向导数掩模求卷积的方法。导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值比较高,因此可将这些导数值作为相应点的边界强度,通过设置门限的方法,提取边界点集。

一阶导数

f x

??与

f y

??是最简单的导数算子,它们分别求出了灰度在x 和y 方向上的变化率,

而方向α上的灰度变化率可以用下面式子计算:

cos sin (cos sin )f f f

G i j x y

ααααα???=+=+??? 对于数字图像,应该采用差分运算代替求导,相对应的一阶差分为:

(,)(,)(1,)(,)(,)(,1)

x y f i j f i j f i j f i j f i j f i j ?=--?=--

方向差分为:

(,)(,)cos (,)sin x y f i j f i j f i j ααα?=?+?

函数f 在某点的方向导数取得最大值的方向是1tan /f f y x α-??

??=?

????

?,方向导数的最大值是12

22

f f G x y ??

??

????=+?? ?

?????????

??

称为梯度模。利用梯度模算子来检测边缘是一种很好的方法,它不仅具有位移不变性,还具有各向同性。为了运算简便,实际中采用梯度模的近似形式,如:

(,)(,)x y f i j f i j ?+?、max((,),(,))x y f i j f i j ??及max (,)(,)f i j f m n -等。另外,

还有一些常用的算子,如Roberts 算子和Sobel 算子。

Roberts 算子的表达式为:

max((,)(1,1),(1,)(,1))f i j f i j f i j f i j -+++-+

Sobel 算子的表达式为:

X 方向算子:1210

00121?? ? ? ?---?? y 方向算子:101202101-?? ?

- ? ?-??

其中,由于Sobel 算子是滤波算子的形式,用于提取边缘。我们可以利用快速卷积函数,简单有效,因此应用很广泛。

拉普拉斯高斯(LoG )算法是一种二阶边缘检测方法。它通过寻找图像灰度值中二阶微分中的过零点(Zero Crossing )来检测边缘点。其原理为,灰度级变形成的边缘经过微分算子形成一个单峰函数,峰值位置对应边缘点;对单峰函数进行微分,则峰值处的微分值为0,峰值两侧符号相反,而原先的极值点对应于二阶微分中的过零点,通过检测过零点即可将图像的边缘提取出来。

MATLAB 的图像处理工具箱中提供的edge 函数可以实现检测边缘的功能,其语法格式如下:

BW = edge(I, ‘sobel’)

BW = edge(I, ‘sobel’, direction) BW = edge(I, ‘roberts’) BW = edge(I, ‘log’)

这里BW = edge(I, ‘sobel’)采用Sobel 算子进行边缘检测。BW = edge(I, ‘sobel’, direction)可以指定算子方向,即:

direction = ‘horizontal ’,为水平方向; direction = ‘vertical ’,为垂直方向; direction = ‘both ’,为水平和垂直两个方向。

BW = edge(I, ‘roberts’)和BW = edge(I, ‘log’)分别为用Roberts 算子和拉普拉斯高斯算子进行边缘检测。

2. 形态学操作

数学形态学图像处理的基本思想是利用一个称作结构元素的“探针”收集图像的信息。当探针在图像中不断移动时,便可考察图像各个部分间的相互关系,从而了解图像各个部分的结构特征。作为探针的结构元素,可直接携带知识(形态、大小、以及灰度和色度信息)来探测所研究图像的结构特点。 2.1 二值图像数学形态学

二值形态学中的运算对象是集合,通常给出一个图像集合和一个结构元素集合,利用结构元素对图像进行操作。其基本运算有四种:腐蚀、膨胀、开运算和闭运算。基于这些基本运算和组合来进行图像形状和结构的分析及处理。如果 A 是图像集合,B 是结构元素( B 本身也是一个图像集合),形态学运算将使用B 对A 进行操作。结构元素往往比图像小得多。。

● 膨胀和腐蚀

膨胀是在二值图像中“加长”或“变粗”的操作。这种特殊的方式和变粗的程度由一个称为结构元素的集合控制。数学上,膨胀定义为集合运算。A 被B 膨胀,记为A ⊕ B ,定义为

{}

[()]z A B z B A A ⊕=??

腐蚀“收缩”或“细化”二值图像中的对象。像在膨胀中一样,收缩的方式和程度由一个结构元素控制。腐蚀的数学定义与膨胀相似, A 被B 腐蚀记为A $ B ,定义为

{}()z A B z B A =?$

● 开运算和闭运算

在图像处理的实际应用中,更多地以各种组合的形式来使用膨胀和腐蚀,它们可以级连结合使用。膨胀后再腐蚀,或者腐蚀后再膨胀,通常不能恢复成原来图像(目标),而是产生一种新的形态变换,这就是开运算和闭运算。

A 被

B 的形态学开运算可以记做A o B ,这种运算是A 被B 腐蚀后再用B 来膨胀腐蚀结果:

()A B A B B =⊕$

A 被

B 的形态学闭运算记做A ·B ,它是先膨胀再腐蚀的结果:

()A B A B B ?=⊕$

当处理二值图像时,采用上述的形态学变换组合,主要应用于提取某一区域的边界线、图像边缘轮廓、物体骨架特征和目标识别等众多的实际应用。 2.2 灰度图像的数学形态学

二值形态学基本运算可以扩展到灰度图像。并由此建立一些基本的灰度形态学运算法则。与二值数学形态学不同的是,灰度形态学运算中的操作对象不再看成是集合而看作是灰度数字图像。设f (x, y)是输入图像,b(x, y)是结构元素(它本身也是一个子图像)。下面简单介绍基本的灰度形态学运算。

● 膨胀和腐蚀

对于灰度图像而言,膨胀和腐蚀是以像素邻域的最大值和最小值来定义的。使用结构元

素b 对f 的灰度膨胀记为f ⊕b 。通常灰度膨胀使用平坦的结构元素来执行,因此灰度膨胀公式可简化为

{}

()(,)max (,)(,)(),();(,)f b f b s t f s x t y b x y s x t y D x y D ⊕=--+--∈∈

因此,平坦的灰度膨胀是一个局部最大值算子,其中的最大值取自由D b 的形状所确定的一系列像素邻域。其中D b 是b 的定义域。

与膨胀一样,灰度腐蚀通常使用平坦的结构元素来执行,则灰度腐蚀公式可简化为

{}

()(,)min (,)(,)(),();(,)f b f b s t f s x t y b x y s x t y D x y D =++-++∈∈$

因此,平坦的灰度腐蚀是一个局部最小值算子,其中的最小值取自由Db 的形状确定的一系列像素邻域。

腐蚀和膨胀可以组合使用,以获得各种效果。例如,从膨胀后的图像中减去腐蚀过的图像可以产生一个“形态学梯度”,它是检测图像中局部灰度级变化的一种度量。

● 开运算和闭运算

灰度图像中开运算和闭运算的表达式与二值图像的相应表达式的形式相同。分别记为fob 和f ·b 。由于开运算可以去除比结构元素更小的明亮细节,闭运算可以去除比结构元素更小的暗色细节,所以它们经常组合在一起用来平滑图像并去除噪声。 2.3 MATLAB 函数

用于图像形态学变换的MATLAB 函数有: ● 构造结构元素函数Strel

SE = strel(shape,parameters)

创建由指定形状shape 对应的结构元素。其中shape 的种类一般有'arbitrary'、'pair'、

'diamond'、'disk'、'rectangle'、'line'、'square',参数parameters 一般控制SE 的大小。

● 膨胀函数Imdilate

IM2 = imdilate(IM, SE)

膨胀灰度图像或二值图像,返回膨胀图像M2。变量SE 是一个结构元素或者一个结构元素的数组,其是通过strel 函数返回的。

● 腐蚀函数Imerode

IM2 = imerode(IM,SE)

腐蚀灰度图像或二值图像IM ,返回腐蚀图像 IM2 。参数 SE 是函数 strel 返回的一个结构元素体或是结构元素体阵列。

● 开运算函数Imopen

IM2 = imopen(IM,SE)

用结构元素SE 实现灰度图像或二值图像的IM 的形态开运算。SE 可以是单个结构元素对象或者结构元素对象数组。开运算一般能平滑图像的轮廓,消弱狭窄的部分,去掉细的突出

● 闭运算函数imclose

IM2 = imclose(IM,SE)

用结构元素SE 实现灰度图像或二值图像的IM 的形态闭运算。SE 可以是单个结构元素对象或者结构元素对象数组。闭运算也能平滑图像的轮廓,但与开运算相反,它一般融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙。

三、实验内容和步骤

(1) 读取汽车牌照图像,并显示。

(2) 分别用Roberts 、Sobel 和拉普拉斯高斯算子对图像进行边缘检测。比较三种算子处理的结果。

(3) 用不同方向(‘水平’、‘垂直’、‘水平和垂直’)的Sobel算子对图像进行边缘检测。比较三种情况的结果。

(4) 将使用Roberts算子进行边缘检测后的汽车牌照图像按照不同大小的矩形结构元素进行腐蚀、膨胀、开、闭运算。比较不同的结果。

四、实验报告

基本内容详见附件。

实验四汽车牌照自动识别

实验学时:2

实验类型:设计

实验要求:选做

一、实验目的

1.分析汽车牌照的特点,正确获取整个图像中车牌的区域,并识别出车牌号。

2.将图像预处理、分割、分析等关键技术结合起来,理论与实践相结合,提高图像处理关键技术的综合应用能力。

二、实验原理和方法

牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。

三、实验内容和步骤

为了进行牌照识别,需要以下几个基本的步骤:

a.牌照定位,定位图片中的牌照位置;

b.牌照字符分割,把牌照中的字符分割出来;

c.牌照字符识别,把分割好的字符进行识别,最终组成牌照号码。

1. 牌照定位

自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定牌照区域是整个识别过程的关键。首先对采集到的视频图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为牌照区域,并将其从图象中分割出来。流程图如下:

完成牌照区域的定位后,再将牌照区域分割成单个字符,然后进行识别。字符分割一般采用垂直投影法。由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值的附近,并且这个位置应满足牌照的字符书写格式、字符、尺寸限制和一些其他条件。利用垂直投影法对复杂环境下的汽车图像中的字符分割有较好的效果。流程图如下:

3. 牌照字符识别

字符识别方法目前主要有基于模板匹配算法和基于人工神经网络算法。基于模板匹配算法首先将分割后的字符二值化,并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,最后选最佳匹配作为结果。基于人工神经元网络的算法有两种:一种是先对待识别字符进行特征提取,然后用所获得特征来训练神经网络分配器;另一种方法是直接把待处理图像输入网络,由网络自动实现特征提取直至识别出结果。

四、实验报告

基本内容详见附件。

附件:(学生实验报告基本内容要求)

实验报告的基本内容及要求

实验报告应体现预习、实验记录和实验报告,要求这三个过程在一个实验报告中完成。1.实验预习

在实验前每位同学都需要对本次实验进行认真的预习,并写好预习报告,在预习报告中要写出实验目的、要求,需要用到的仪器设备、物品资料以及简要的实验步骤,形成一个操作提纲。对实验中的安全注意事项及可能出现的现象等做到心中有数,但这些不要求写在预习报告中。

设计性实验要求进入实验室前写出实验方案。

2.实验记录

学生开始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、观察到的现象和所测得的数据及相关条件如实地记录下来。

实验记录中应有指导教师的签名。

3.实验总结

主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法等。

贵州大学实验报告

学院:专业:班级:

注:各学院可根据教学需要对以上栏木进行增减。表格内容可根据内容扩充。

数字图像处理实验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

数字图像处理实验指导书-河北工业大学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、掌握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

贵州大学计算机网络实验报告-实验二-TCPIP 协议常用网络工具的使用

实验课程名称计算机网络实验报告 实验项目名称TCP/IP 协议常用网络工具的使用专业班级电子信息科学与技术08级1班学生姓名 学号 指导教师 理学院 实验时间:2010年4月22日

实验名称: 实验二TCP/IP协议常用网络工具的使用 实验目的: ●了解系统网络命令及其所代表的含义,以及所能对网络进行的操作。 ●通过网络命令了解运行系统网络状态,并利用网络命令对网络进行简单的操作。 实验器材: 连接到因特网的计算机,个人电脑Windows XP sp3系统。 实验内容(步骤): 学习使用windows环境下常用的网络命令: 1)Ipconfig:IP地址与以太网卡硬件地址查看命令 2)Ping:网络连接测试命令 3)ARP:地址解析命令 4)FTP:文件传输命令 5)Netstat:显示协议及其端口信息和当前的TCP/IP 网络连接 6)Route:控制网络路由表 7)TFTP:简单文件传输命令 8)Tracert:该诊断实用程序将包含不同生存时间(TTL) 值的Internet 控制消息 协议(ICMP) 回显数据包发送到目标,以决定到达目标采用的路由。 9)Net:网络服务等 1. ipconfig Ipconfig命令应该是最最基础的命令了,主要功能就是显示用户所在主机内部的 IP协议的配置信息等资料。 它的主要参数有: all:显示与TCP/IP协议相关的所有细节信息,其中包括测试的主机名、IP地址、 子网掩码、节点类型、是否启用IP路由、网卡的物理地址、默认网关等。 renew all:更新全部适配器的通信配置情况,所有测试重新开始。 release all:释放全部适配器的通信配置情况。 renew n:更新第n号适配器的通信配置情况,所有测试重新开始。 命令格式是: C:\>ipconfig/(参数)

数字图像处理程序

数字图像处理程序

数字图像处理实验 图像处理实验(一)直方图 灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特 征更加明显。 灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像 增强。 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彩色空间

算法与分析实验报告模板

贵州大学计算机科学与技术学院 计算机科学与技术系上机实验报告 课程名称:算法设计与分析班级:实验日期:YYYY-MM-DD 姓名:学号:指导教师:程欣宇 实验序号:一实验成绩: 一、实验名称 分治算法实验- 棋盘覆盖问题 二、实验目的及要求 1、熟悉递归算法编写; 2、理解分治算法的特点; 3、掌握分治算法的基本结构。 三、实验环境 Visual C++ 四、实验内容 根据教材上分析的棋盘覆盖问题的求解思路,进行验证性实验; 要求完成棋盘覆盖问题的输入、分治求解、输出。有余力的同学尝试消去递归求解。 五、算法描述及实验步骤 分治算法原理: 分治算法将大的分解成形状结构相同的子问题,并且不断递归地分解,直到子问题规模小到可以直接求解。 棋盘覆盖问题描述: 在一个2k x 2k个方格组成的棋盘中恰有一个方格与其他的不同称为特殊方格,想要求利用四种L型骨牌(每个骨牌可覆盖三个方格)不相互重叠覆盖的将除了特殊方格外的其他方格覆盖。

实验步骤: 1、定义用于输入和输出的数据结构; 2、完成分治算法的编写; 3、测试记录结构; 4、有余力的同学尝试不改变输入输出结构,将递归消除,并说明能否不用栈,直接消除递归,为什么? 六、调试过程及实验结果 详细记录程序在调试过程中出现的问题及解决方法。 记录程序执行的结果。 七、总结 对上机实践结果进行分析,问题回答,上机的心得体会及改进意见。 八、附录 源程序(核心代码)清单或使用说明书,可另附纸

贵州大学计算机科学与技术学院 计算机科学与技术系上机实验报告 课程名称:算法设计与分析班级:实验日期:2014-11-25 姓名:学号:指导教师:程欣宇 实验序号:二实验成绩: 一、实验名称 动态规划实验- 滑雪问题 二、实验目的及要求 1、学会使用在线测评的算法题目评分系统; 2、通过直观的应用问题,加深对动态规划算法的理解; 三、实验环境 任意C或C++编写调试工具,北京大学ICPC在线测评系统POJ 四、实验内容 1、找到题号为1088的题目-滑雪,阅读题目,建立其最优解的递归表达式; 3、使用备忘录式的动态规划算法,实现本题; 4、进行简单测试,完成之后提交到POJ系统。 五、算法描述及实验步骤 动态规划算法原理: 分治算法将大的问题变成小的问题来解决,但是如果划分过程中出现重叠子问题,就可能导致大量的重复计算。为了避免这些重复的计算,可以考虑的一个办法就是动态规划算法。 为了使用动态规划算法,问题还必须具备最优子结构,即问题的最优解包含了子问题的最优解。 滑雪问题描述: Michael喜欢滑雪百这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在

数字图像处理实验指导书

实验一数字图像处理编程基础 一、实验目的 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 的大小;

(整理)数字图像处理实验指导书 _贵州大学

计算机科学与信息学院 《数字图像处理》 实验指导书 适用专业:信息安全、网络工程、计算机 贵州大学 二O一三年五月

前言 本指导书是根据数字图像处理教学大纲和实验大纲编写的,在教学过程中指导学生实验时使用。运用MATLAB软件平台,结合图像处理工具箱,对图像处理相关算法进行编程和实现。通过学生上机操作实践与教师指导,使学生深入理解和掌握数字图像处理的技术和方法,增强处理实际问题的能力。 考虑到《数字图像处理》课程的自身特点,以及软件的升级更新性,本实验指导书具有适应性。 本实验指导书主要适用于计算机科学与信息学院的各个相关专业。

目录 实验一图像基本操作 (4) 实验二图像增强 (7) 实验三图像分割 (11) 实验四汽车牌照自动识别 (16) 实验报告的基本内容及要求 (18) 贵州大学实验报告 (19)

实验一图像基本操作 实验学时:2 实验类型:验证 实验要求:必做 一、实验目的 利用MATLAB软件,熟悉图像的数据矩阵操作、图像的类型转换及图像的存储等基本操作。 1.熟悉图像矩阵的基本操作 2.掌握图像数据类型转换及图像类型转换 3.掌握图像文件的读写 4.掌握图像及灰度图像直方图的显示 5.掌握图像缩放和旋转 二、实验原理和方法 1.关于图像矩阵 MATLAB中图像数据以矩阵方式的存储。所以有必要学会关于矩阵的操作,由于篇幅有限,这里只作简要的介绍。 生成矩阵的函数有: eye 生成单位矩阵 ones全1阵 zeros 全零阵 rand 均匀随机阵 randn 正态随机阵 2.图像数据类型及图像类型 2.1 图像数据类型转换 MATLAB中图像数据矩阵的存储方式为双精度(double)类型即64位浮点数。而存储图像时MATLAB有时采用无符号整型(uint8)即图像矩阵中的每个数据占用一个字节。由于大多数运算和函数(比如最基本的矩阵加减运算)都不支持uint8类型,所以运算时通常要将图像转换成 double型。 函数double将数据转换为双精度浮点类型,调用格式为: X64=double(x8) /256 2.2 图像类型及转换 在MATLAB中,一幅图像可能包含一个数据矩阵,也可能有一个颜色映像表矩阵。MATLAB图像处理工具箱支持四种图像类型,其区别在于数据矩阵元素的不同含意。它们是:● 真彩色图像 ● 索引图像 ● 灰度图像 ● 二值图像 (1)真彩色图像 真彩色图像又称RGB图像,对于一个尺寸为M×N的彩色图像来说,在MATLAB中则存储为一个M×N×3的多维数组,像素的颜色由保存在像素位置上的R、G、B的强度值的组合来确定。如果需要知道图像A中(x,y)处的像素值,则可以使用这样的代码A(x,y,1:3)。 (2)索引图像

用matlab数字图像处理四个实验

数字图像处理 实验指导书

目录 实验一MATLAB数字图像处理初步实验二图像的代数运算 实验三图像增强-空间滤波 实验四图像分割 3

实验一 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)

数字图像处理实验

学院计算机与通信工程学院专业生物医学工程专业 班级51111 学号5111133 姓名杨静 指导教师贾朔 2014年04月21日

实验一图像的基本运算 一、实验目的: 1、掌握图像处理中的点运算、代数运算、逻辑运算和几何运算及应用。 2、掌握各种运算对于图像处理中的效果。 二、实验内容: 1、(1)选择一幅图像lena8.jpg,设置输入/输出变换的灰度级范围,a=0.2,b=0.6,c=0.1,d=0.9. (2)设置非线性扩展函数的参数c=2. (3)采用灰度级倒置变换函数s=255-r进行图像变换 (4)设置二值化图像的阈值,分别为level=0.4,level=0.7 解:参考程序如下: I=imread('C:\lena8.jpg'); figure; subplot(2,3,1); imshow(I); title('原图'); J=imadjust(I,[0.3;0.6],[0.1;0.9]); %设置灰度变换的范围 subplot(2,3,2); imshow(J); title('线性扩展'); I1=double(I); %将图像转换为double类型 I2=I1/255; %归一化此图像 C=2; K=C*log(1+I2); %求图像的对数变换 subplot(2,3,3); imshow(K); title('非线性扩展'); M=im2bw(I,0.5); M=~M; %M=255-I; %将此图像取反 %Figure subplot(2,3,4); imshow(M); title('灰度倒置'); N1=im2bw(I,0.4); %将此图像二值化,阈值为0.4 N2=im2bw(I,0.7); %将此图像二值化,阈值为0.7 subplot(2,3,5); imshow(N1); title('二值化阈值0.4'); subplot(2,3,6); imshow(N2); title('二值化阈值0.7');

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