您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页数字图像处理实验指导书 _贵州大学

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

来源:飒榕旅游知识分享网
计算机科学与信息学院

《数字图像处理》

实验指导书

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

贵州大学 二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)类型即位浮点数。而存储图像时MATLAB有时采用无符号整型(uint8)即图像矩阵中的每个数据占用一个字节。由于大多数运算和函数(比如最基本的矩阵加减运算)都不支持uint8类型,所以运算时通常要将图像转换成 double型。

函数double将数据转换为双精度浮点类型,调用格式为: X=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)索引图像

4

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函数将一个图形窗口划分为多个显示区域,其调用格式如下:

5

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)中显示旋转后的图像并比较结果有什么不同。

四、实验报告

基本内容详见附件。

6

实验二 图像增强

实验学时: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函数,可以用该函数给图像添加不同种类噪声,其语法格式为:

J = imnoise(I,type,parameters) 参数Type、parameters对应的噪声类型如下: Type Gaussian Localvar Possion Salt&pepper Speckle parameters m,v V 无 D V 说明 均值为m,方差为v的高斯噪声 均值为0,方差为v的高斯白噪声 泊松噪声 噪声密度为D的椒盐噪声 均值为0,方差为v的均匀分布随机噪声 1.2均值滤波

7

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

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

Rw1z1w2z2w9z9wizii19 (1)

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

19Rzi9i1 (2)

1 1 1 1 1 1 1 1 1

图1 两个33均值滤波器掩模。

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

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

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

gx,ysatbws,tfxs,ytsatbabws,tab (3)

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

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

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

8

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是与滤波器种类有关的具体参数,下表列出常用的滤波器种类 说明 TYPE PARAMETERS Average Hsize 均值滤波器,如果邻域为方阵,则hsize为标量,否则由两元素向量hsize指定邻域的行数和列数 近似计算垂直梯度光滑效应的水平边缘强调算子 系数由alpha(0.0~1.0)决定的二维拉普拉斯操作 近似计算垂直梯度的水平边缘强调算子 按照角度theta移动len个像素的运动滤波器 Sobel Laplacian Prewitt Motion 无 Alpha 无 len,theta 1.5 中值滤波器函数:medfilt2

调用格式为:

B = medfilt2(A)

B = medfilt2(A,[M N])

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

9

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

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

g(x,y)Nnf(x,y)mn

Mm就可以实现这一要求。

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为指定的均衡化后的灰度级数,缺省值为。

三、实验内容和步骤

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

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

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

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

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

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

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

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

四、实验报告

基本内容详见附件。

10

实验三 图像分割

实验学时:2 实验类型:验证 实验要求:必做 一、实验目的

1、理解图像边缘提取的基本概念; 2、熟悉进行边缘提取的基本方法;

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

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

二、实验原理和方法

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

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

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

一阶导数

fx与

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

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

fffcossinG(cosisinj) xy对于数字图像,应该采用差分运算代替求导,相对应的一阶差分为:

11

xf(i,j)f(i,j)f(i1,j)yf(i,j)f(i,j)f(i,j1)方向差分为:

f(i,j)xf(i,j)cosyf(i,j)sin

函数f在某点的方向导数取得最大值的方向是tan121ff/,方向导数的最大值yxf2f是Gxy2称为梯度模。利用梯度模算子来检测边缘是一种很好的方法,它不仅具有位移不变性,还具有各向同性。为了运算简便,实际中采用梯度模的近似形式,如:

xf(i,j)yf(i,j)、max(xf(i,j),yf(i,j))及maxf(i,j)f(m,n)等。另外,

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

Roberts算子的表达式为:

max(f(i,j)f(i1,j1),f(i1,j)f(i,j1))

Sobel算子的表达式为:

10112100 y方向算子:202 X方向算子:0101121其中,由于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)可以指定算子方向,即:

12

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 ,定义为

)A]A ABz[(Bz腐蚀“收缩”或“细化”二值图像中的对象。像在膨胀中一样,收缩的方式和程度由一

个结构元素控制。腐蚀的数学定义与膨胀相似, A被B腐蚀记为A$B ,定义为

A$Bz(B)z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)是结构元素(它本身也是一个子图像)。下面简单介绍基本的灰度形态算。

 膨胀和腐蚀

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

13

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

(fb)(s,t)maxf(sx,ty)b(x,y)(sx),(ty)Df;(x,y)Db

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

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

(f$b)(s,t)minf(sx,ty)b(x,y)(sx),(ty)Df;(x,y)Db

因此,平坦的灰度腐蚀是一个局部最小值算子,其中的最小值取自由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和拉普拉斯高斯算子对图像进行边缘检测。比较三种算子处理的结果。

14

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

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

四、实验报告

基本内容详见附件。

15

实验四 汽车牌照自动识别

实验学时:2 实验类型:设计 实验要求:选做 一、实验目的

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

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

二、实验原理和方法

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

三、实验内容和步骤

为了进行牌照识别,需要以下几个基本的步骤: a.牌照定位,定位图片中的牌照位置;

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

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

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

导入原始图像 图像预处理增强效果图像 边缘提取 对图像开闭运算 车牌定位 2. 牌照字符分割

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

16

计算水平投影进行车牌水平校正 去掉车牌的框架 分析垂直投影找到每个字符中心位置 按左右宽度切割出字符 3. 牌照字符识别

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

四、实验报告

基本内容详见附件。

17

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

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

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

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

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

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

实验记录中应有指导教师的签名。 3.实验总结

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

18

贵州大学实验报告

学院: 专业: 班级:

姓名 实验时间 实验项目名称 实验 目的 实验 要求 实验 原理 实验 仪器 实验 步骤 学号 指导教师 实验组 成绩 19

实验 内容 实验 数据 实验 总结 指导教师意见 签名: 年 月 日 注:各学院可根据教学需要对以上栏木进行增减。表格内容可根据内容扩充。

20

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务