当前位置:文档之家› 二值图像分析

二值图像分析

二值图像分析
二值图像分析

第三章 二值图像分析

一幅数字图像是一个二维阵列,阵列元素值称为灰度值或强度值.实际上,图像在量化成数字图像前是一个连续强度函数的集合,场景信息就包含在这些强度值中.图像强度通常被量化成256个不同灰度级,对某些应用来说,也常有32、64、128或512个灰度级的情况,在医疗领域里甚至使用高达4096(12bits )个灰度级.很明显,灰度级越高,图像质量越好,但所需的内存也越大.

在机器视觉研究的早期,由于内存和计算能力非常有限,而且十分昂贵,因此视觉研究人员把精力主要集中在研究输入图像仅包含两个灰度值的二值视觉系统上.人们注意到,人类视觉在理解仅由两个灰度级组成的线条、轮廓影像或其它图像时没有任何困难,而且应用场合很多,这一点对研究二值视觉系统的研究人员是一个极大的鼓舞.

随着计算机计算能力的不断增强和计算成本的不断下降,人们普遍开始研究基于灰度图像、彩色图像和深度图像的视觉系统.尽管如此,二值视觉系统还是十分有用的,其原因如下:⑴ 计算二值图像特性的算法非常简单,容易理解和实现,并且计算速度很快.⑵ 二值视觉所需的内存小,对计算设备要求低.工作在256个灰度级的视觉系统所需内存是工作在相同大小二值图像视觉系统所需内存的八倍.如若利用游程长度编码等技术(见3.4节)还可使所需内存进一步减少.由于二值图像中的许多运算是逻辑运算而不是算术运算,所以所需的处理时间很短.(3)许多二值视觉系统技术也可以用于灰度图像视觉系统上.在灰度或彩色图像中,表示一个目标或物体的一种简易方法就是使用物体模板(mask),物体模板就是一幅二值图像,其中1表示目标上的点,0表示其它点.在物体从背景中分离出来后,为了进行决策,还需要求取物体的几何和拓扑特性,这些特性可以从它的二值图像计算出来.因此,尽管我们是在二值图像上讨论这些方法,但它们的应用并不限于二值图像.

一般来说,当物体轮廓足以用来识别物体且周围环境可以适当地控制时,二值视觉系统是非常有用的.当使用特殊的照明技术和背景并且场景中只有少数物体时,物体可以很容易地从背景中分离出来,并可得到较好的轮廓,比如,许多工业场合都属于这种情况.二值视觉系统的输入一般是灰度图像,通常使用阈值法首先将图像变成二值图像,以便把物体从背景中分离出来,其中的阈值取决于照明条件和物体的反射特性.二值图像可用来计算特定任务中物体的几何和拓扑特性,在许多应用中,这种特性对识别物体来说是足够的.二值视觉系统已经在光学字符识别、染色体分析和工业零件的识别中得到了广泛应用.

在下面的讨论中,假定二值图像大小为n m ?,其中物体像素值为1,背景像素值为0.

3.1 阈值

视觉系统中的一个重要问题是从图像中识别代表物体的区域(或子图像),这种对人来说是件非常容易的事,对计算机来说却是令人吃惊的困难.为了将物体区域同图像其它区域分离出来,需要首先对图像进行分割.把图像划分成区域的过程称为分割,即把图像],[j i F 划分成区域k p p p ,,,21???,使得每一个区域对应一个候选的物体.下面给出分割的严格定义. 定义 分割是把像素聚合成区域的过程,使得:

==i k

i P 1 整幅图像 (}{i P 是一个完备分割 ).

j i P P j i ≠?=, ,(}{i P 是一个完备分割). ● 每个区域i P 满足一个谓词,即区域内的所有点有某种共同的性质.

● 不同区域的图像,不满足这一谓词.

正如上面所表明的,分割满足一个谓词,这一谓词可能是简单的,如分割灰度图像时用的均匀灰度分布、相同纹理等谓词,但在大多数应用场合,谓词十分复杂.在图像理解过程中,分割是一个非常重要的步骤.

二值图像可以通过适当地分割灰度图像得到.如果物体的灰度值落在某一区间内,并且背景的灰度值在这一区间之外,则可以通过阈值运算得到物体的二值图像,即把区间内的点置成1,区间外的点置成0.对于二值视觉,分割和阈值化是同义的.阈值化可以通过软件来实现,也可以通过硬件直接完成.

通过阈值运算是否可以有效地进行图像分割,取决于物体和背景之间是否有足够的对比度.设一幅灰度图像],[j i F 中物体的灰度分布在区间],[21T T 内,经过阈值运算后的图像为二值图像],[j i F T ,即:

???≤≤=其它

如果0],[ 1],[21T j i F T j i F T (3.1) 如果物体灰度值分布在几个不相邻区间内时,阈值化方案可表示为:

?

??∈=其它如果0],[ 1],[Z j i F j i F T (3.2) 其中Z 是组成物体各部分灰度值的集合.图3.1是对一幅灰度图像使用不同阈值得到的二值图像输出结果.

阈值算法与应用领域密切相关.事实上,某一阈值运算常常是为某一应用专门设计的,在其它应用领域可能无法工作.阈值选择常常是基于在某一应用领域获取的先验知识,因此在某些场合下,前几轮运算通常采用交互式方式来分析图像,以便确定合适的阈值.但是,在机器视觉系统中,由于视觉系统的自主性能(autonomy )要求,必须进行自动阈值选择.现在已经研究出许多利用图像灰度分布和有关的物体知识来自动选择适当阈值的技术.其中的一些方法将在3.2节介绍.

图3.1 一幅灰度图像和使用不同阈值得到的二值图像结果.上左:原始灰度图像,上右:阈

值T=100;左下:T=128.右下:T1=100|T2=128.

3.2 几何特性

通过阈值化方法从图像中检测出物体后,下一步就要对物体进行识别和定位.在大多数工业应用中,摄像机的位置和环境是已知的,因此通过简单的几何知识就可以从物体的二维图像确定出物体的三维位置.在大多数应用中,物体的数量不是很多,如果物体的尺寸和形状完全不同,则可以利用尺度和形状特征来识别这些物体.实际上在许多工业应用中,经常使用区域

的一些简单特征,如大小、位置和方向,来确定物体的位置并识别它们.

3.2.1 尺寸和位置

一幅二值图像区域的面积(或零阶矩)由下式给出:

∑∑-=-==101

0],[n i m j j i B A (3.3)

在许多应用中,物体的位置起着十分重要的作用.工业应用中,物体通常出现在已知表面(如工作台面)上,而且摄像机相对台面的位置也是已知的.在这种情况下,图像中的物体位置决定了它的空间位置.确定物体位置的方法有许多,比如用物体的外接矩形、物体矩心(区域中心)等来表示物体的位置.区域中心是通过对图像进行“全局”运算得到的一个点,因此它对图像中的噪声相对来说是不敏感的.对于二值图像,物体的中心位置与物体的质心相同,因此可以使用下式求物体的中心位置:

∑∑∑∑∑∑∑∑-=-=-=-=-=-=-=-=-==10101010101

01010]

,[],[]

,[],[n i n i m j m j n i m j n i m j j i iB j i B y j i jB j i B x (3.4)

其中x 和y 是区域相对于左上角图像的中心坐标.物体的位置为: A

j i iB y A

j i jB x n i m j n i m j ∑∑∑∑-=-=-=-=-==

10101010]

,[]

,[ (3.5)

这些是一阶矩.注意,由于约定y 轴向上,因此方程3.4和3.5的第二个式子的等号右边加了负号. 3.2.2 方向

计算物体的方向比计算它的位置稍微复杂一点.某些形状(如圆)的方向不是唯一的,为了定义唯一的方向,一般假定物体是长形的,其长轴方向被定义为物体的方向.通常,二维平面上与最小惯量轴同方向的最小二阶矩轴被定为长轴.

图像中物体的二阶矩轴是这样一条线,物体上的全部点到该线的距离平方和最小.给出一幅二值图像],[j i B ,计算物体点到直线的最小二乘方拟合,使所有物体点到直线的距离平方和最小:

χ2

20101==-=-∑∑r B i j ij j m i n [,] (3.6)

其中r ij 是物体点],[j i 到直线的距离.为了避免直线处于近似垂直时所出现的数值病态问题,人们一般把直线表示成极坐标形式:

θθρsin cos y x += (3.7)

如图3.2所示,θ是直线的法线与x 轴的夹角,ρ是直线到原点的距离.把点),(j i 坐标代入直线的极坐标方程得出距离r :

22)sin cos (ρθθ-+=y x r (3.

8)

图3.2 直线的极坐标表示

将方程3.8代入方程3.6并求极小化问题,可以确定参数ρ和θ:

∑∑-=-=-+=101

022

],[)sin cos (n i m j ij ij j i B y x ρθθχ (3.9) 令2χ对ρ的导数等于零求解ρ得:

)sin cos (θθρy x += (3.10) 它说明回归直线通过物体中心),(y x .用这一ρ值代入上面的2χ,则极小化问题变为:

θθθθχ222sin cos sin cos c b a ++= (3.11)

其中的参数: ]

,[)(],[))((2]

,[)(1021

0101

0101

02j i B y y c j i B y y x x b j i B x x a n i m j ij n i m j ij ij n i m j ij ∑∑∑∑∑∑-=-=-=-=-=-=-=--=-= (3.12)

是二阶矩.表达式2χ可重写为:

θθχ2sin 212cos )(21)(212b c a c a +-++=

(3.13) 对2χ微分,并置微分结果为零,求解θ 值:

c

a b -=

θ2tan (3.14) 因此,惯性轴的方向由下式给出:

222

2)(2cos )(2sin c a b c

a c a

b b -+-±

=-+±

=θθ (3.15) 所以由2χ的最小值可以确定方向轴.注意,如果c a b ==,0,那么物体就不会只有唯一的方向轴.物体的伸长率E 是2χ的最大值与最小值之比:

min

max χχ=E (3.16) 3.2.3 密集度和体态比

区域的密集度(compact )可用下面的式子来度量:

2p

A C = (3.17) 其中,p 和A 分别为图形的周长和面积.根据这一衡量标准,圆是最密集的图形,其密集密度为最大值π4/1,其它一些图形的比值要小一些.让我们来看一下圆,当圆后仰时,形状成了一椭圆,面积减小了而周长却不象面积减小的那么快,因此密集度降低了.在后仰到极限角时,椭圆被压缩成了一条无限长直线,椭圆的周长为无穷大,故密集度变成了零.对于数字图像, 2p A 是指物体尺寸(像素点数量)除以边界长度的平方.这是一种很好的散布性或密集性度量方法.这一比值在许多应用中被用作为区域的一个特征.

密集度的另一层意义是:在给定周长的条件下,密集度越高,围成的面积就越大.注意在等周长的情况下,正方形密集度大于长方形密集度.

体态比定义为区域的最小外接矩形的长与宽之比,正方形和圆的体态比等于1,细长形物体的体态比大于1.图3.3所示的是几种形状的外接矩形.

图3.3 几种外接矩形示意图 3.3 投影

给定一条直线,用垂直该直线的一簇等间距直线将一幅二值图像分割成若干条,每一条内像素值为1的像素个数为该条二值图像在给定直线上的投影(projection ).当给定直线为水平或垂直直线时,计算二值图像每一列或每一行上像素值为1的像素数量,就得到了二值图像的水平和垂直投影,如图3.4所示.由于投影包含了图像的许多信息,所以投影是二值图像的一种

简洁表示方式.显然,投影不是唯一的,同样的投影可能对应不同的图像.

图3.4 一幅二值图像及其水平投影图

在某些应用中,投影可以作为物体识别的一个特征.投影既是一种简洁的图像表示,又可以实现快速算法.下面介绍对角线投影的求解方法.对角线投影的关键是计算当前行和列对应的投影分布图位置标号.设行和列的标号分别用i 和j 表示.若图像矩阵为n 行m 列,则i 和j 的范围分别为0到1-n 和0到1-m .假设对角线的标号d 用行和列的仿射变换(线性组合加上常数)计算,即:

c bj ai

d ++= (3.18) 对角线投影共对应1-+m n 个条,其中仿射变换把右上角像素映射成对角线投影的第一个位置,把左下角像素映射成最后一个位置,如图3.5所示,则当前行列对应的标号d 的公式为:

1-+-=m j i d (3.19)

图3.5 二值图像及其对角线上的投影图

3.4 游程长度编码

游程长度编码(run-length encoding)是另一种二值图像的简洁表示方法,它是用图像像素值连续为1的个数(像素1的长度)来描述图像.这种编码已被用于图像传输.另外,图像的某些性质,如物体区域面积,也可以从游程长度编码直接计算出来.

在游程长度编码中经常运用两种方法,一种是使用1的起始位置和1的游程长度,另一种是仅仅使用游程长度,但须从1的游程长度开始描述,如图3.6所示.

1的游程(2,2) (6,3) (13,6) (20,1)

(4,6) (11,10)

(1,5 ) (11,1) (17,4)

1和0的游程长度:0,2,2,3,4,6,1,1

0,3,6,1,10

5,5,1,5,4

图3.6 一幅简单二值图像的游程长度编码.

如果用第二种方法来表示图像每行的游程长度,并用k i r ,代表图像第i 行的第k 个游程长度,则全部1的游程长度之和就是所求物体的面积.

∑∑-=??????-=+=1021012,n i m k k i i r A (3.20)

其中i m 是第i 行游程个数,2/)1(-i m 取整,表示1的游程个数.

由游程长度编码能很容易地计算水平投影而无需变成原来的图像.使用更巧妙的方法也能从游程长度编码计算出垂直和对角线投影.

3.5 二值图像算法

从背景中分离出物体是一个困难的问题,在此将不讨论这个问题.这里假设物体可以从背景中分离,并且使用某一谓词,可以对图像中属于物体的点进行标记.因此,问题就变为如何将一幅图像中所有被标记的点组合成物体图像.这里还假设物体点在空间上是非常接近的.利用空间接近概念可以严格定义,利用此定义研究的算法可以把空间上非常接近的点聚合在一起,构成图像的一个成分(component ).下面首先引进一些定义,然后讨论有关算法.

3.5.1 定义

(1) 近邻

在数字图像中,一个像素在空间上可能非常接近其它一些像素.在用方格表示的数字图像中,一个像素与其它四个像素有公共边界,并与另外四个像素共享顶角.如果两个像素有公共边界,则把它们称为4-近邻(4-neighbors).同样,如果两个像素至少共享一个顶角,则称它们为8-近邻.例如,位于],[j i 的像素有四个4-近邻:],1[j i -,],1[j i +,]1,[-j i ,]1,[+j i .

它的8-近邻包括这四个4-近邻,再加上]1,1[--j i ,]1,1[-+j i ,]1,1[+-j i ,]1,1[++j i .一

个像素被认为与它的4-近邻是4-连通(4-connected)关系,与它的8-近邻是8-连通关系(如图3.7).

图3.7 矩形像素网格的4-近邻和8-近邻示意图.像素],[j i 位于图的中心.

(2) 路径

从像素],[00j i 到像素],[n n j i 的路径(path)是指一个像素序列],[00j i ,],[11j i ,..., ],[n n j i ,其中像素],[k k j i 是像素],[11++k k j i 的近邻像素,10-≤≤n k .如果近邻关系是4-连通的,则路径是4-路径;如果是8-连通的,则称为8-路径.图3.8即为路径的两个简单例子.

图3.8 4-路径和8—路径示意图

(3) 前景

图像中值为1的全部像素的集合称为前景(foreground),用S 表示.

(4) 连通性

已知像素S q p ∈,,如果存在一条从p 到q 的路径,且路径上的全部像素都包含在S 中,则称p 与q 是连通的.

注意,连通性(connectivity)是等价关系.对属于S 的任意三个像素p 、q 和r ,有下列性质:

1.像素p 与p 本身连通(自反性).

2.如果p 与q 连通,则q 与p 连通(互换性).

3.如果p 与q 连通且q 与r 连通,则p 与r 连通(传递性).

(5) 连通成份

一个像素集合,如果集合内的每一个像素与集合内其它像素连通,则称该集合为一个连通成份(connected component).

[i-1, j ]

[i, j-1] [i, j ] [i, j+1]

[i+1, j ] [i-1,j-1] [i-1,j ] [i-1,j+1] [i,j-1] [i, j ] [i,j+1] [i+1,j-1] [i+1,j ] [i+1,j+1]

(6) 背景

?S(S的补集)中包含图像边界点的所有连通成份的集合称为背景(background).?S中所有其它元称为洞.考虑下面的两个图像.

首先看左图中有几个洞和几个物体.如果从前景和背景来考虑4-连通,有四个大小为-个像素的物体和一个洞.如果考虑8-连通,那么有一个物体而没有洞.直观地,在这两种情况下出现了不确定性情况.右图为另一个类似的不确定问题.其中如果1是连通的,那么0就应该是不连通的.

为了避免这种难以处理的情况,对物体和背景应使用不同的连通.如果我们对S使用8-连通,那么对?S就应使用4-连通.

(7) 边界

S的边界(boundary)是S中与?S中有4-连通关系的像素集合.边界通常记为S'.

(8) 内部

内部(interior)是S中不属于它的边界的像素集合.S的内部等于S-S'.

(9) 包围

如果从S中任意一点到图像边界的4-路径必须与区域T相交,则区域T包围(surrounds)区域S(或S在T内).图3.9即为一幅简单二值图像和它的边界、内部、包围示意图.

图3.9 ,内部和包围

3.5.2连通成份标记

在一幅图像中找出连通成份是机器视觉中最常见的运算之一.连通区域内的点构成表示物体的候选区域.机器视觉中的大多数物体都有表面,显然,物体表面点投影到图像平面上会形

成空间上密集的点集.这里应该指出,连通成份算法常常会在二值视觉系统中形成瓶颈效应,原因是连通成份运算是一个全局性的运算,这种算法在本质上是序贯的.如果图像中仅有一个物体,那么找连通成份就没有必要;如果图像中有许多物体,且需要求出物体的特性与位置,则必须确定连通成份.

连通标记算法可以找到图像中的所有连通成份,并对同一连通成份中的所有点分配同一标记.图3.10表示的是一幅图像和已标记的连通成份.在很多应用中,要求在标记连通成份的同时算出连通成份的特征,如尺寸、位置、方向和外接矩形.下面介绍两种连通成份标记算法:递归算法和序贯算法[Jain 1995].

图3.10 一副图像及其连通成分图像

(1)递归算法

递归算法在串行处理器上的计算效率是很低的,因此,这一算法主要用于并行机上.

算法3.1连通成份递归算法

1.扫描图像,找到没有标记的1点,给它分配一个新的标记L.

3.递归分配标记L给1点的邻点.

3.如果不存在没标记的点,则停止.

4.返回第一步.

(2)序贯算法

序贯算法通常要求对图像进行二次处理.由于这一算法一次仅运算图像的两行,因此当图像以文件形式存贮且空间不允许把整幅图像载入内存时也能使用这一算法.这一算法(见算法3.2)可以查看某一点的邻点,并且可以给像素值为1的邻点分配一个已经使用过的标记.如果图像的邻点有两种不同的标记,则用一个等价表(equivalent table)来记录所有的等价标记.在第二次处理过程中,使用这一等价表来给某一连通成份中所有像素点分配唯一的标记.本算法在从左到右、从上到下扫描图像时,算法仅能查询到某一像素点的4-近邻中的两个近邻点,即上点与左点.设算法已经查到了该像素的这两个近邻点,此时出现三种情况:(1) 如果这两个近邻点中没有一点为1,则该像素点需要一个新的标记.(2) 如果这两个近邻点中只有一点为1,且分配了标记L,那么该像素点的标记也为L.(3) 如果这两个邻点都为1,且已分配了标记L,则该像素点的标记还是L;但是当近邻点被分配了不同标记M与N,则这两个标记被用于了同一组元,应该把它们合并.在这种情况下,应把其中的一个标记(一般选用最小的那个标记)分配给该像素点,并在等价表中登记为等价标记.

等价表包含了给每一连通成份分配唯一标记的信息.在第一次扫描中,所有属于同一连通成份的标记被视为是等价的.在第二次扫描中,从一个等价集(equivalent set)中选择一个标记并分配给连通成份中所有像素点.通常将最小的标记分配给一个连通成份.第二次扫描将给每一连通成份分配唯一的标记.

在找到所有的连通成份后,应该统计等价表,以便删除其中的空格;然后将等价表作为查

找表对图像重新进行扫描,以便重新统计图像中的标记.

计算每一连通成份的面积、一阶矩、二阶矩是序贯连通成份算法的一个部分.当然,必须使用分离变量来累加每一区域的矩信息.当区域合并后,每一区域的矩累计值也应加到一起.算法3.24-连通序贯连通成份算法

1.从左至右、从上到下扫描图像.

2.如果像素点为1,则:

(a) 如果上面点和左面点有一个标记,则复制这一标记.

(b) 如果两点有相同的标记,复制这一标记.

(c) 如果两点有不同的标记,则复制上点的标记且将两个标记输入等价表中作为等价

标记.

(d) 否则给这一个像素点分配一新的标记并将这一标记输入等价表.

3.如果需考虑更多的点,则回到第二步.

4.在等价表的每一等价集中找到最低的标记.

5.扫描图像,用等价表中的最低标记取代每一标记.

3.5.3 欧拉数

在许多应用中,亏格数(genus)或欧拉数可作为识别物体的特征.亏格数定义为连通成份数减去空洞数,

E-

=(3.21)

C

H

其中,E,C和H分别是欧拉数、连通成份数与空洞数.这个式子给出了一个简单的拓朴特征,这种拓扑特征具有平稳、旋转和比例不变特性.图3.11给出了一些例子及其对应的欧拉数.

=

=

E

E2

=

E1-

图3.11 字母“A”、“B”、“i”及它们的欧拉数.注意前景

用了8-连通,而背景用了4-连通.

3.5.4 区域边界

连通成份S的边界是那些属于S且与?S邻接的点集.使用简单的局部运算就可找到边界点.在大多数应用中,我们都想用一特定的顺序跟踪边界点.一般的算法是按顺时针方向跟踪区域的所有点.此处讨论一个简单的边界跟踪算法.

假定物体边界不在图像的边界上(即物体完全在图像内部),边界跟踪算法先选择

一起始点S s ∈,然后跟踪边界直到回到起始点.这种算法概括在算法3.3中.这种算法对尺寸大于1个象素的所有区域都是有效的.用这种算法求区域8-邻点的边界如图3.12(a)所示.为了得到平滑的图像边界,可以在检测和跟踪图像边界后,利用边界点的方向信息来平滑边界。显然,图像边界噪声越大,图像边界点变化越剧烈,图像边界相邻点的方向变化数(与差分链码有一点区别,链码见第七章)也越大.根据这一特点,设置一个边界点方向变化数阈值,把方向变化数大于这一阈值的图像边界点滤除,由此可得到平滑的图像边界。图3.12(b )所示的是一个经过平滑过的区域边界示意图,其中的方向变化数阈值为1。注意,由于采用8-邻点边界跟踪,因此方向变化数的最大值为4。如果阈值设成4,则对原始边界没有平滑。边界跟踪和平滑常常结合在一起使用,见计算机作业3.5。

图3.12 边界跟踪算法结果,(a) 图像边界跟踪结果;(b )边界跟踪与平滑结果.

算法3.3 边界跟踪算法

① 从左到右、从上到下扫描图像,求区域S 的起始点0)),(),(()(==k k y k x k s . ② 用c 表示当前边界上被跟踪的像素点.置)(k s c =,记c 左4-邻点为b ,S b ∈. ③ 按逆时针方向从b 开始将c 的8个8-邻点分别记为8,21,,n n n ???,1+=k k , ④ 从b 开始,沿逆时针方向找到第一个S n i ∈,

⑤ 置i n k s c ==)(,1-=i n b ,

⑥ 重复步骤③、④、⑤,直到)0()(s k s =。

3.5.5 距离测量

在许多应用中,找到一幅图像中两个像素点或两个连通成份之间的距离是很有必要的.目前还没有定义数字图像距离的唯一方法,但对所有的像素点p 、q 和 r ,任何距离度量都必须满足下列性质:

1. 0),(≥q p d ,当且仅当q p =时,0),(=q p d

2. ),(),(p q d q p d =

3. ),(),(),(r q d q p d r p d +≤

下面是一些常用的距离函数

欧几里德距离:

2212212211Euclidean )()(]),[],,([j j i i j i j i d -+-= ( 3.22) 街区距离:

.||||2121Block j j i i d -+-= (3.23)

棋盘距离:

|).||,max(|2121Chess j j i i d --= (3.24)

3.5.6 中轴

如果对S 中像素],[j i 的所有邻点],[v u 有下式成立:

)],,([)],,([S v u d S j i d ≥ (3.25)

则S 中像素],[j i 到S 的距离)],,([S j i d 是局部最大值.S 中所有到S 的距离是局部最大值的像素点集合称为对称轴或中轴,通常记为*S .使用],[v u 4-近邻的中轴变换的一些例子见图

3.13.图3.13b 表明少量噪声会使中轴变换结果产生显著的差异.

由*S 和*S 中每一点到S 的距离能重构原始像素集S .*S 是S 的简洁表示.*S 可用来表示一个区域的形状.通过去除*S 中与S 距离较小的像素点,可以生成一个简化的*S 集.

中轴可作为物体的一种简洁表示.但是,二值图像中的区域也可用其边界来表示.边界跟踪算法可用来获得表示边界的序列点.在第七章还将讨论用链码来简洁地表示边界的方法.对任意物体,边界将是区域的简洁表示.但要明确给定像素点是否在某一区域内,中轴则是更好的表示,因为使用中轴上的像素点和每一个给定像素点的最大距离圆盘(中轴距离变换),可以很容易地检测出给定像素是否在中轴定义的区域中.

图 3.13 中轴变换举例

3.5.7 细化

细化(thinning)是一种图像处理运算,可以把二值图像区域缩成线条,以逼近区域的中心线,也称之为骨架或核线.细化的目的是减少图像成份,直到只留下区域的最基本信息,以便进一步分析和识别.虽然细化可以用在包含任何区域形状的二值图像,但它主要对细长形(而不是凸圆形或水滴状)区域有效.细化一般用于文本分析预处理阶段,以便将文本图像中线条图画或字符笔画表示成单像素线条.细化要求如下:

(1) 连通图像区域必须细化成连通线结构.

(2) 细化结果最少应该是8-连通(下面将要解释).

(3) 保留近似终止线的位置.

(4) 细化结果应该近似于中轴线.

(5) 由细化引起的附加突刺(短分支)应该是最小的.

细化结果应该保证第一条要求中所定义的连通性,这一点是最基本的要求,它保证了连通线结构的数量等于原始图像中连通区域的数量.第二条要求保证所得到的线条总是含有8-连通图像的最小数量.第三条要求说明终止线位置应该保持不变.细化可以通过迭代方式不断去除边界点来实现,重要的是在迭代过程中不要去除端点像素,因为这样不仅会缩短细化线,丢掉结构信息,而且不能保持其位置不变.第四条要求说明所得线段应能最好地逼近原始区域的中线,如两个像素点宽的竖线或水平线的真正中线应该位于这两个像素之间半个像素间距的位置.在数字图像中表示半个像素间距是不可能的,因此得到的结果是一条位于原直线一侧的直线.第五条要求没有明确指出噪声的影响控制到最低程度,因为判断噪声本身是一件很难的事.一般不希望原始区域含有会引起突刺的隆起,但当某些较大隆起是区域特征时,却必须识别它们.应该指出,某些细化算法有去除突刺的参数,不过最好将细化和去除噪声分开进行,这是由于某些情况下不需要的突刺,可能是另一些情况下所需要的短线.因此,最好的办法是先进行细化,然后单独去除长度低于某一特定最小值的任何突刺.

一种常用的细化手段是在至少33?邻域内检查图像的每一点,剥去区域边界.一次剥去一层图像,直至区域被细化成一条线.这一过程是用迭代法实现的,如算法3.4.在每次迭代时,每一个像素点用n n ?窗函数检查,为了保持连通性或线末端位置,将单像素厚的边界擦除.在图3.14中将会看到,在每次迭代中,值为1的外层区域就是用这种方式削掉的.当迭代结果没有变化时,迭代过程结束,图像得到细化

算法3.4 4-近邻细化迭代算法

对于每一个像素,如果

(1)没有上近邻(下近邻\左近邻\右近邻)

(2)不是孤立点或终止线

(3)去除该像素点不会断开区域

则去除该像素点.

重复这一步骤直到没有像素点可以去除.

图3.14 细化手写体“华”的迭代过程.(a) 原图像,(b)—(f)为

五次迭代过程,每次迭代削去一层边界.

3.5.8 扩展与收缩

图像中的一个连通成份可以进行全方位的扩展(expanding)或收缩(shrinking).如果某一连通

成份可以变化,使得一些背景像素点变成1,这一运算就称为扩展.如果物体像素点全方位地消减或变为0时,则称为收缩.一种简单的扩展与收缩实现方法如下:

扩展:如果近邻点是1,则将该点从0变为1.

收缩:如果近邻点是0,则将该点从1变为0.

这样,收缩可以看作是扩展背景.这类运算的例子见图3.15.

需要指出,扩展与收缩这样简单的运算可以完成非常有用而又貌似很复杂的运算.下面引进符号

)(k S : S 扩展k 倍.

)(k S -:S 收缩k 倍.

其中下列性质必须满足:

)()()(n m m n n m S S S ---≠≠

k k S S -?)(

k k S S )(-?

先扩展后收缩算法能补上不希望存在的洞,如图3.15(b )(d )所示;先收缩后扩展算法则能去除孤立的噪声点,见图3.15(c )(e ).请注意,扩展与收缩可用来确定孤立组元或簇.注意,扩展后收缩有效地填满了空洞却没有去除噪声;相反,收缩后扩展能去除噪声却没有填满空洞.在地形图像处理和膨胀与腐蚀运算中,扩展与收缩算法的一般形式被广泛地用于许多任务中.

图3.15 对字母“h ”收缩与扩展算法实验结果.(a )原始噪声图像;(b) 扩展运算;(c )收缩

运算;(d )扩展后收缩运算;(e )收缩后扩展运算.

3.6 形态算子

数学形态(morphology )这一名称是从形状研究得来的.这种方法也说明了一个事实,即在许多机器视觉算法设计中,根据形状来思考问题是最自然,也是最容易的.形态方法有助于进行基于形状或图形思考.形态方法中图像信息的基本单元是二值像素.

任意两个二值图像A 和B 的交是一个二值图像,记为B A ,即A 与B 中皆为1的图像点

p 的集合:

{}B p A p p B A ∈∈=,| (3.26) A 和B 的并,记为B A ,是一个二值图像,是A 或B 或两者中为1的所有图像点p 的集合,用符号表示为:

{}B p or A p p B A ∈∈=| (3.27) 设Ω是全值二值图像(所有的像素值皆为1),A 是二值图像.A 的补集是A 中1与0互相交换后的二值图像,即:

?{}A p p p A ?Ω∈=,| (3.28) 标号为],[j i 与],[l k 的两像素点p 和q ,其向量和是标号为],[l j k i ++的像素点q p +.向量差是标号为],[l j k i --的像素点q p -.

若A 是二值图像,p 是二值图像B 中的一个像素点,则A 被p 平移后的二值图像由下式表示:

{}A a p a A p ∈+=| (3.29)

即二值图像A 被一个像素点p 平移是指将A 的原点移到p

(1) 膨胀

已知二值图像A ,如果n b b b A A A ,,,21???是由二值图像{}n b b b B ,,21 =中像素值为1的点平移得到的,则A 由B 平移的并称为A 被B 膨胀,即;

i i b b A

B A =⊕ (3.30)

膨胀具有结合性、交换性.这样,在进行膨胀的步骤序列中,完成运算的顺序就不重要了.这就允许我们将一个复杂的形状拆成几个简单的形状,然后重新组合成为膨胀序列.

(2) 腐蚀

腐蚀是膨胀的相反过程.二值图像A 经二值图像B 腐蚀后在p 点仍为1的充分必要条件是:B 平移到p 后,B 中的1像素也是A 中的1像素.A 被B 腐蚀可用下式表示:

}|{A B p B A p ?=Θ (3.31)

二值图像B 常常是规则图像,是作用于图像中的一种探针,也称为结构元.腐蚀在许多应用中起着十分重要的作用.结构元对一幅图像进行腐蚀会生成一幅包含结构元所有位置的图像. 图3.16到3.17是一个倒T 形结构元对一个简单物体进行膨胀与腐蚀运算的示意图.用结构元进行膨胀或腐蚀运算也可以描述为:结构元的原点像素经过待膨胀的二值图像中所有1像素点时,对应结构元所有1像素的待膨胀二值图像像素置为1像素;在腐蚀运算过程中,结构元的原点像素经过待腐蚀的二值图像中所有1像素点时,如果结构元中有一个1像素没有对应待腐蚀二值图像的1像素,则对应结构元原点的待腐蚀二值图像1像素置为0.

图3.16 原始测试图像A(左)与结构元B(右).注意结构元B的原点

比B中的其它像素点要黑一些.

(a) (b)

图3.17 膨胀与腐蚀实验结果.(a)A被B膨胀,其中原始像素A的边界用粗黑线表示.(b)A被B腐蚀,其中原始像素A的边界用粗黑线表示.

膨胀和腐蚀展示了几何的而不是逻辑的对偶特性,这种特性也包含了几何互补性与逻辑互补性.二值图像的几何互补称为它的反射.二值图像B的反射B'是与B关于原点对称的二值图像,即:

B∈

-

p

='(3.32)

}

|

{B

p

膨胀与腐蚀的对偶性由下面关系式表示:

Θ

A'

⊕(3.33)

=

B

B

A

=

Θ(3.34)

A'

B

A

B

与几何对偶性相比,逻辑对偶性的关系式为:

A

=(3.35)

A

B

B

B

=(3.36)

A

A

B

上式也称为DeMorgan定律.

腐蚀与膨胀常常用于图像滤波.如果已知噪声特性,则可选用适当的结构元和一系列腐蚀与膨胀运算来去除噪声.请注意,这样的滤波会影响图像中物体的形状.

数学形态中的基本运算可以组合成很复杂的运算.用同一结构元(探针)腐蚀后再膨胀可去除比结构元小的所有区域像素点,而留下其余部分,这一顺序称为“开”运算.如,用一圆形

的探针将所有比探针小的区域删除,实现抑制加性空域细节的滤波.

与上述处理顺序相反的过程是膨胀后再腐蚀,称为“关”运算,这种顺序会填满比探针小的孔洞和凹状区.这些运算见图3.18和图3.17,其中结构元采用了相同的T形结构.这里仍然存在一个问题是去除的图像可能与保留的图像一样重要.这样的滤波器可用来抑制空域特征或区分基于尺寸的物体类型.所用的结构元不一定是简洁的或规则的,可以是任意模式的像素点集合.这样可以探测到具有一定分布的图像特征.

关于数学形态的详细内容参见[Dougherty 1988, Haralick 1992] ,关于数学形态在字符识别中的应用见[Mitchell 1989].

图3.18“开”运算.左:腐蚀;右:膨胀.图中的粗黑线表示原始图像边界.

图3.19 “关”运算.左:膨胀;右:腐蚀.图中的粗黑线表示原始图像边界.

思考题

3.1考虑一幅二进制图像如图3.20所示.

(a) 分别使用4-连通和8-连通,求黑像素集合中包含有多少个区域.

(b) 分别使用4-连通和8-连通,求白像素集合中包含有多少个区域.

图3.20 题3.1图

3.2假定图3.21的白色像素是边缘点.请分别使用4-连通和8-连通细化算法去除多余的白点(把去除的白点用阴影线表示).

图3.21 题3.2图

3.3连通域标记算法是许多应用中的“瓶颈”问题.连通域标记可以看作是视觉系统中连接高层和低层算法的桥梁.请你给出一种连通标记快速算法设计的构思?请问能否开发出一种并行算法,为什么?

计算机练习题

3.1开发一个算法来计算区域面积和游程代码的第一、二阶矩.

3.2开发一个中轴算法.将这一算法作用于具有不同规则物体的二值图像上,并研究这种技术在表示物体形状时的优点与缺点.

3.3构造一种算法来实现膨胀与收缩运算.使用这些算法来实现二值图像中不同噪声的滤波.3.4设计一个机器视觉系统,该系统可以获取场景的二值图像并识别物体.考虑一些常用物体,如,硬币、钢笔、笔记本和其它的办公用品.根据你在本章中学到的物体特征来建立物体识别策略,完成所有的运算并测试你的系统.

深度图像的二值化

深度图像的二值化

————————————————————————————————作者: ————————————————————————————————日期:

3.2 深度图像二值化 图像二值化是图像处理中的一项基本技术,也是很多图像处理技术的预处理过程。在颗粒分析、模式识别技术、光学字符识别(OCR)、医学数据可视化中的切片配准等应用中,图像二值化是它们进行数据预处理的重要技术。由于图像二值化过程将会损失原图像的许多有用信息,因此在进行二值化预处理过程中,能否保留原图的主要特征非常关键。在不同的应用中,图像二值化时阈值的选择是不同的。因此,自适应图像阈值的选取方法非常值得研究。研究者对图像二值化方法进行了讨论,在此基础上提出了一个新的图像二值化算法。该算法基于数学形态学理论,较好地保留了图像二值化时原图的边缘特征。本文主要研究二值化及灰度图像二值化方法。 3.2.1.灰度图像与二值图像 数字图像是将连续的模拟图像经过离散化处理后得到的计算机能够辨识的点阵图像。在严格意义上讲,数字图像是经过等距离矩形网格采样,对幅度进行等间隔量化的二维函数。因此,数字图像实际上就是被量化的二维采样数组。一幅数字图像都是由若干个数据点组成的,每个数据点称为像素(pixel)。比如一幅256×400,就是指该图像是由水平方向上256列像素和垂直方向上400行像素组成的矩形图。每一个像素具有自己的属性,如颜色(color)、灰度(grayscale)等,颜色和灰度是决定一幅图像表现里的关键因素。数字图像又可分为彩色图像、灰度图像、二值图像。 3.2.1.1彩色图像 彩色图像是多光谱图像的一种特殊情况,对应于人类视觉的三基色即红(R)、绿(G)、蓝(B)三个波段,是对人眼的光谱量化性质的近似。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255种值可取,这样一个像素点可以有1600多万的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,一个像素点的变化范围为255种。图1-1为彩色图像。

基于MATLAB的数字二值图像处理与形状分析的实现

本科学生毕业论文 论文题目:基于MATLAB的数字二值图像处理与形 状分析实现 学院:电子工程学院 年级:2011 专业:电子信息科学与技术 姓名:刘学利 学号:20113564 指导教师:王晓飞 2014年06月24日

摘要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能.由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好地为人们服务.数字图像处理是一种通过计算机采用一定算法对图形图像处理的技术.数字图像处理技术已经在各个领域上有了比较广泛的应用.图像处理的信息量很大,对处理速度的要求也比较高.MATLAB强大的运算和图像展示功能,使图像处理变得更加的简单和直观.本文介绍了MATLAB语言的特点,基于MATLAB的数字图像处理环境,介绍了如何利用MATLAB及其图像处理工具箱进行图像处理的方法.主要论述了利用MATLAB实现图像的二值化,二值图像的腐蚀、膨胀、开、闭等形态学处理. 关键词 MATLAB;数字图像处理;二值图像

Abstract Digital image processing is an emerging technology,with the development of computer hardware,real-time digital image processing has become possible due to digital image processing algorithms to appear,making it faster and faster processing speed,better for people services.Digital image processing is used by some algorithms Computer graphics image processing technology.Digital image processing technology has been used in various areas which have a relatively wide range of applications.The amount of information on the processing speed requirement is relatively high.MATLAB is good at computing and graphics display capabilities,so that image processing becomes more simple and intuitive.This paper introduces characteristics of MATLAB language and this MATLAB-based digital image processing environment,describes how to use the MATLAB Image Toolbox for its digital image processing,and through some examples to illustrate the use of MATLAB Image Processing Toolbox for image processing method.Mainly discuss the use of MATLAB for image processing enhancement,binary image and its corrode and dilate and open and close. Key words MATLAB;digital image processing;image enhancement and binary image

二次函数的图像及其三种表达式

二次函数的图像及其三种表达式 学生: 时间: 学习目标 1、熟悉常见的二次函数的图像; 2、理解二次函数的三种表达式 知识点分析 1、.二次函数的三种表达式 一般式:y=ax^2+bx+c (a ,b ,c 为常数,a ≠0) 顶点式:y=a(x-h)^2+k [抛物线的顶点P (h ,k )] 交点式:y=a(x-x1)(x-x2) [仅限于与x 轴有交点A (x1,0)和 B (x2,0)的抛物线] 2、一般地,自变量x 和因变量y 之间存在如下关系: y=ax^2+bx+c (a ,b ,c 为常数,a ≠0,且a 决定函数的开口方向,a>0时,开口方向向上,a<0时,开口方向向下,IaI 还可以决定开口大小,IaI 越大开口就越小,IaI 越小开口就越大.) 则称y 为x 的二次函数。 二次函数表达式的右边通常为二次三项式。 例题精讲 例题1已知函数y=x 2 +bx +1的图象经过点(3,2). (1)求这个函数的表达式; (2)画出它的图象,并指出图象的顶点坐标; (3)当x >0时,求使y ≥2的x 的取值范围. 例题2、一次函数y=2x +3,与二次函数y=ax 2 +bx +c 的图象交于A (m ,5)和B (3,n )两点,且当x=3时,抛物线取得最值为9. (1)求二次函数的表达式; (2)在同一坐标系中画出两个函数的图象; (3)从图象上观察,x 为何值时,一次函数与二次函数的值都随x 的增大而增大. (4)当x 为何值时,一次函数值大于二次函数值? 随堂练习 1.已知函数y=ax 2 +bx +c (a ≠0)的图象,如图①所示,则下列关系式中成立的是( ) A .0<- a b 2<1 B .0<-a b 2<2 C .1<-a b 2<2 D .-a b 2=1 图① 图② 2.函数y = 21x 2 +2x +1写成y =a (x -h)2+k 的形式是 A.y =21(x -1)2+2 B.y =21(x -1)2+2 1

图像处理第二次作业(2)

对一幅灰度图像: (1)计算并画出此图像的中心化频率谱。 (2)分别用高斯低通和高斯高通滤波器对图像进行频域处理,并对结果进行分析。 (3)用频域拉普拉斯算子对此图像进行锐化处理,并对结果进行分析。 (1)程序 clear; clc; A=imread('lena.jpg','jpg'); B=rgb2gray(A); figure; subplot(2,2,1);imshow(B);title('原图像'); B_d=double(B); [m,n] = size(B); %fft2函数实现 if ismatrix(B_d)%ismatrix:确定输入的是否为矩阵 if nargin==1%nargin用来判断输入变量的个数 f = fftn(B_d);%fftn:N维离散傅里叶变换 else f = fftn(B_d,[m n]); end else ifnargin==1 f = fft(fft(B_d,[],2),[],1); else f = fft(fft(B_d,n,2),m,1); end end C3=log(1+abs(f)); subplot(2,2,2);imshow(C3,[]);title('原图像频谱'); %计算并画出此图像的中心化频率谱 [m,n] = size(B); fori=1:m for j=1:n C1(i,j)=((-1)^(i+j))*(B_d(i,j)); end end C2=log(1+abs(fft2(C1))); C4=fftshift(log(1+abs(fft2(B_d)))); subplot(2,2,3);imshow(C2,[]); title('编写函数实现频谱中心化') subplot(2,2,4);imshow(C4,[]) title('matlab函数实现频谱中心化')

数字图像处理试题集2(精减版)

第一章概述 一.填空题 1. 数字图像是用一个数字阵列来表示的图像。数字阵列中的每个数字,表示数字图像的一个最小单位,称为__________。 5. 数字图像处理包含很多方面的研究内容。其中,________________的目的是根据二维平面图像数据构造出三维物体的图像。 解答:1. 像素5. 图像重建 第二章数字图像处理的基础 一.填空题 1. 量化可以分为均匀量化和________________两大类。 3. 图像因其表现方式的不同,可以分为连续图像和________________两大类。 5. 对应于不同的场景内容,一般数字图像可以分为________________、灰度图像和彩色图像三类。 解答: 1. 非均匀量化 3. 离散图像 5. 二值图像 二.选择题 1. 一幅数字图像是:( ) A、一个观测系统。 B、一个有许多像素排列而成的实体。 C、一个2-D数组中的元素。 D、一个3-D空间的场景。 3. 图像与灰度直方图间的对应关系是:() A、一一对应 B、多对一 C、一对多 D、都不对 4. 下列算法中属于局部处理的是:() A、灰度线性变换 B、二值化 C、傅立叶变换 D、中值滤波 5. 一幅256*256的图像,若灰度级数为16,则该图像的大小是:()

A、128KB B、32KB C、1MB C、2MB 6. 一幅512*512的图像,若灰度级数为16,则该图像的大小是:() A、128KB B、32KB C、1MB C、2MB 解答:1. B 3. B 4. D 5. B 6. A 三.判断题 1. 可以用f(x,y)来表示一幅2-D数字图像。() 3. 数字图像坐标系与直角坐标系一致。() 4. 矩阵坐标系与直角坐标系一致。() 5. 数字图像坐标系可以定义为矩阵坐标系。() 6. 图像中虚假轮廓的出现就其本质而言是由于图像的灰度级数不够多造成的。() 10. 采样是空间离散化的过程。() 解答:1. T 3. F 4. F 5. T 6. T 10. T 1、马赫带效应是指图像不同灰度级条带之间在灰度交界处存在的毛边现象(√) 第三章图像几何变换 一.填空题 1. 图像的基本位置变换包括了图像的________________、镜像及旋转。 7. 图像经过平移处理后,图像的内容________________变化。(填“发生”或“不发生”) 8. 图像放大是从小数据量到大数据量的处理过程,________________对许多未知的数据的估计。(填“需要”或“不需要”) 9. 图像缩小是从大数据量到小数据量的处理过程,________________对许多未知的数据的估计。(填“需要”或

深度图像的二值化

3.2 深度图像二值化 图像二值化是图像处理中的一项基本技术,也是很多图像处理技术的预处理过程。在颗粒分析、模式识别技术、光学字符识别(OCR)、医学数据可视化中的切片配准等应用中,图像二值化是它们进行数据预处理的重要技术。由于图像二值化过程将会损失原图像的许多有用信息,因此在进行二值化预处理过程中,能否保留原图的主要特征非常关键。在不同的应用中,图像二值化时阈值的选择是不同的。因此,自适应图像阈值的选取方法非常值得研究。研究者对图像二值化方法进行了讨论,在此基础上提出了一个新的图像二值化算法。该算法基于数学形态学理论,较好地保留了图像二值化时原图的边缘特征。本文主要研究二值化及灰度图像二值化方法。 3.2.1.灰度图像与二值图像 数字图像是将连续的模拟图像经过离散化处理后得到的计算机能够辨识的点阵 图像。在严格意义上讲,数字图像是经过等距离矩形网格采样,对幅度进行等间隔量化的二维函数。因此,数字图像实际上就是被量化的二维采样数组。一幅数字图像都是由若干个数据点组成的,每个数据点称为像素(pixel)。比如一幅 256×400,就是指该图像是由水平方向上256列像素和垂直方向上400行像素组成的矩形图。每一个像素具有自己的属性,如颜色(color)、灰度(grayscale)等,颜 色和灰度是决定一幅图像表现里的关键因素。数字图像又可分为彩色图像、灰度图像、二值图像。 3.2.1.1彩色图像 彩色图像是多光谱图像的一种特殊情况,对应于人类视觉的三基色即红(R)、绿(G)、蓝(B)三个波段,是对人眼的光谱量化性质的近似。彩色图像中的 每个像素的颜色有R、G、B三个分量决定,而每个分量有255种值可取,这样一个像素点可以有1600多万的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,一个像素点的变化范围为255种。图1-1为彩色图像。

数字图像处理报告 图像二值化

数字图像处理实验报告 实验二灰度变换 实验目的:通过实验掌握灰度变换的基本概念和方法 实验内容: 掌握基本的灰度变换:图像反转、对数变换、幂次变换和二值化1.图像反转、对数变换、幂次变换 I=imread('fengjing.jpg'); J=im2double(I); subplot(2,3,1),imshow(J); title('原图'); K=255-I; subplot(2,3,2),imshow(K); title('图象反转'); L=3.*log(1+J); subplot(2,3,3),imshow(L);title('图象对数,系数为3'); M=10.*log(1+J); subplot(2,3,4),imshow(M);title('图象对数,系数为10'); N=10.*(J.^0.2); subplot(2,3,5),imshow(N);title('图象指数变换,γ=0.2'); P=10.*(J.^2.5); subplot(2,3,6),imshow(P);title('图象指数变换,γ=2.5'); 2.图象二值化 方法一:

I=imread('fengjing.jpg'); % 确定大小subplot(1,2,1),imshow(I);title('原图象'); [m,n]=size(I); for i=1:m for j=1:n if I(i,j)<128 I(i,j)=0; else I(i,j)>=128 & I(i,j)<256 I(i,j)=255; end end end subplot(1,2,2),imshow(I);title('图象二值化');方法二: I=imread('fengjing.jpg'); % 确定大小subplot(1,2,1),imshow(I);title('原图象'); J=find(I<128); I(J)=0; J=find(I>=128); I(J)=255; title('图像二值化(阈值为128)'); subplot(1,2,2),imshow(I);title('图象二值化');

图像二值化算法研究与实现

图像二值化算法研究与实现 摘要:图像二值化是图像预处理中的一项重要技术,在模式识别、光学字符识别、医学成像等方面都有重要应用。论文介绍了图像及数字图像处理技术的一些概念和相关知识;对VC++ 软件的发展和软件在图像处理中的应用做了简要介绍;还介绍了图像二值化算法以及利用VC++软件工具进行算法的实现。论文重点实现了图像分割技术中常用灰度图像二值化算法,如Otsu算法、Bernsen算法,并对这些算法运行的实验结果进行分析与比较。 关键词:图像处理;二值化;VC++; 1.引言 1.1 图像与数字图像 图像就是用各种观测系统观测客观世界获得的且可以直接或间接作用与人眼而产生视觉的实体。视觉是人类从大自然中获取信息的最主要的手段。拒统计,在人类获取的信息中,视觉信息约占60%,听觉信息约占20%,其他方式加起来才约占20%。由此可见,视觉信息对人类非常重要。同时,图像又是人类获取视觉信息的主要途径,是人类能体验的最重要、最丰富、信息量最大的信息源。通常,客观事物在空间上都是三维的(3D)的,但是从客观景物获得的图像却是属于二维(2D)平面的。 数字图像:数字图像是将连续的模拟图像经过离散化处理后得到的计算机能够辨识的点阵图像。在严格意义上讲,数字图像是经过等距离矩形网格采样,对幅度进行等间隔量化的二维函数。因此,数字图像实际上就是被量化的二维采样数组。 1.2 数字图像处理技术内容与发展现状 数字图像处理就是采用一定的算法对数字图像进行处理,以获得人眼视觉或者某种接受系统所需要的图像处理过程。图像处理的基础是数字,主要任务是进行各种算法设计和算法实现。 图像处理技术的发展大致经历了初创期、发展期、普及期和实用化期4个阶段。初创期开始与20世纪60年代,当时的图像采用像素型光栅进行少秒显示,大多采用中、大型机对其处理。在这一时期,由于图像存储成本高、处理设备昂贵,其应用面很窄。进入20世纪70年代的发展期,开始大量采用中、小型机进行处理,图像处理也逐渐改用光栅扫描方式,特别是CT和卫星遥感图像的出现,对图像处理技术的发展起到了很好的推动作用。到了20世纪80年代,图像处理技术进入普及期,此时的微机已经能够担当起图形图像处理的任务。超大规模集成电路(Very Large Scale Integration, VLSI)的出现更使处理速度大大提高,设备造价也进一步降低,极大地促进了图形图像系统的普及和应用。20世纪90年代是图像处理技术的实用化时期,图像处理的信息量巨大,对处理速度的要求极高。 1.3 图像二值化原理及意义 图像二值化是指用灰度变换来研究灰度图像的一种常用方法,即设定某一阈值将灰度

第三章 二值图像分析

第三章 二值图像分析 一幅数字图像是一个二维阵列,阵列元素值称为灰度值或强度值.实际上,图像在量化成数字图像前是一个连续强度函数的集合,场景信息就包含在这些强度值中.图像强度通常被量化成256个不同灰度级,对某些应用来说,也常有32、64、128或512个灰度级的情况,在医疗领域里甚至使用高达4096(12bits )个灰度级.很明显,灰度级越高,图像质量越好,但所需的内存也越大. 在机器视觉研究的早期,由于内存和计算能力非常有限,而且十分昂贵,因此视觉研究人员把精力主要集中在研究输入图像仅包含两个灰度值的二值视觉系统上.人们注意到,人类视觉在理解仅由两个灰度级组成的线条、轮廓影像或其它图像时没有任何困难,而且应用场合很多,这一点对研究二值视觉系统的研究人员是一个极大的鼓舞. 随着计算机计算能力的不断增强和计算成本的不断下降,人们普遍开始研究基于灰度图像、彩色图像和深度图像的视觉系统.尽管如此,二值视觉系统还是十分有用的,其原因如下:⑴ 计算二值图像特性的算法非常简单,容易理解和实现,并且计算速度很快.⑵ 二值视觉所需的内存小,对计算设备要求低.工作在256个灰度级的视觉系统所需内存是工作在相同大小二值图像视觉系统所需内存的八倍.如若利用游程长度编码等技术(见3.4节)还可使所需内存进一步减少.由于二值图像中的许多运算是逻辑运算而不是算术运算,所以所需的处理时间很短.(3)许多二值视觉系统技术也可以用于灰度图像视觉系统上.在灰度或彩色图像中,表示一个目标或物体的一种简易方法就是使用物体模板(mask),物体模板就是一幅二值图像,其中1表示目标上的点,0表示其它点.在物体从背景中分离出来后,为了进行决策,还需要求取物体的几何和拓扑特性,这些特性可以从它的二值图像计算出来.因此,尽管我们是在二值图像上讨论这些方法,但它们的应用并不限于二值图像. 一般来说,当物体轮廓足以用来识别物体且周围环境可以适当地控制时,二值视觉系统是非常有用的.当使用特殊的照明技术和背景并且场景中只有少数物体时,物体可以很容易地从背景中分离出来,并可得到较好的轮廓,比如,许多工业场合都属于这种情况.二值视觉系统的输入一般是灰度图像,通常使用阈值法首先将图像变成二值图像,以便把物体从背景中分离出来,其中的阈值取决于照明条件和物体的反射特性.二值图像可用来计算特定任务中物体的几何和拓扑特性,在许多应用中,这种特性对识别物体来说是足够的.二值视觉系统已经在光学字符识别、染色体分析和工业零件的识别中得到了广泛应用. 在下面的讨论中,假定二值图像大小为n m ?,其中物体像素值为1,背景像素值为0. 3.1 阈值 视觉系统中的一个重要问题是从图像中识别代表物体的区域(或子图像),这种对人来说是件非常容易的事,对计算机来说却是令人吃惊的困难.为了将物体区域同图像其它区域分离出来,需要首先对图像进行分割.把图像划分成区域的过程称为分割,即把图像],[j i F 划分成区域k p p p ,,,21???,使得每一个区域对应一个候选的物体.下面给出分割的严格定义. 定义 分割是把像素聚合成区域的过程,使得: ==i k i P 1 整幅图像 (}{i P 是一个完备分割 ).

数字图像处理综合作业2

综合作业二 ( 春季学期 ) 一.对X1照片图像增强 (3) 1.1 直方图增强 (3) 1.1.1 直方图拉伸增加对比度 (3) 1.1.2直方图均衡 (4) 1.2 伪彩色增强 (5) 1.2.1等密度分割法 (5) 1.2.2多波段合成伪彩色显示 (8) 二.对x2照片图像增强 (10) 2.1 滤波 (10) 2.1.1各种滤波器 (10) 2.1.2 中值滤波 (12) 2.1.3 二阶butterworth滤波 (14) 2.2 直方图增强 (16) 三.边缘提取及增强 (18) 3.1 对x1边缘提取及复合 (18) 3.1.1 对x1边缘提取 (18) 3.1.2 对x1边缘复合 (19) 3.2对x2边缘提取及复合 (20)

3.2.1 直接对原图x2边缘提取 (20) 3.2.2 去噪后边缘提取 (21) 3.2.3 对x2边缘复合 (22)

一.对X1照片图像增强 1.1 直方图增强 1.1.1 直方图拉伸增加对比度 为了增强图像,观察x1,我们考虑增加图像的对比度,看是否能使图像更清晰。 具体的编程思路是,读入x1图像,运用matlab自带的imadjust函数,对比所得结果,具体程序见附录1.1.1(a),实验结果见图1.1.1(1)。 1.1.1(a) 结论:由图1.1.1(a)对比发现,左右两边基本没有区别,基本没有图像增强效果。我们考虑到运用imadjust函数可以得到原图的负片,即将原灰度图白色的地方变成黑色,黑色的地方变成白色,这种效果可能使X1图像自身对比更鲜明,起到图像增强的作用,具体程序见附录1.1.1(2),实验结果见图1.1.1(b)。

图像二值化中阈值选取方法研究

目录 摘要 ................................................................. III Abstract............................................................... IV 第一章绪论. (1) 1.1 图像与数字图像 (1) 1.2 数字图像处理技术内容与发展现状 (2) 1.3 灰度图像二值化原理及意义 (4) 第二章软件工具——MATLAB (6) 2.1 MATLAB概述 (6) 2.2 MATLAB的工作环境 (6) 2.3 MATLAB图像处理工具箱 (8) 2.4 工具箱实现的常用功能 (9) 第三章图像二值化方法 (11) 3.1 课题研究对象 (11) 3.2 二值化方法研究动态 (13) 3.3 全局阈值法 (18) 3.4 局部阈值法 (18) 第四章 Otsu方法和Bernsen方法 (20) 4.1 Otsu算法分析 (20) 4.2 Otsu方法流程图 (22) 4.3 Bernsen算法分析 (23) 4.4 Bernsen方法流程图 (23) 第五章 Otsu方法和Bernsen方法实验比较 (25) 5.1 Otsu方法实验结果分析 (25)

5.2 Bernsen方法结果分析 (27) 5.3 0tsu方法和Bernsen方法实验结果比较 (28) 5.4 结论 (29) 结束语 (31) 参考文献 (32) 致谢 (33) 附录:源代码 (34)

摘要 在人类获取的信息中,视觉信息约占60%,听觉约占20%,其它约占20%。由此可见,视觉信息对人类非常重要。同时,图像是人类获取视觉信息的主要途径。图像二值化是图像预处理中的一项重要技术,在模式识别、光学字符识别、医学成像等方面都有重要应用。论文介绍了图像及数字图像处理技术的一些概念和相关知识;对Matlab7.0 软件的发展和软件在图像处理中的应用做了简要介绍;还介绍了灰度图像二值化方法以及利用Matlab7.0软件工具进行算法的实现。课题重点实现了图像分割技术中灰度图像二值化方法,如Otsu算法、Bernsen算法,并对这些算法运行的实验结果进行分析与比较。 关键词:图像处理,二值化,Matlab,Otsu算法,Bernsen算法

第三章 二值图像分析

第三章二值图像分析 一幅数字图像是一个二维阵列,阵列元素值称为灰度值或强度值.实际上,图像在量化成数字图像前是一个连续强度函数的集合,场景信息就包含在这些强度值中.图像强度通常被量化成256个不同灰度级,对某些应用来说,也常有32、64、128或512个灰度级的情况,在医疗领域里甚至使用高达4096(12bits)个灰度级.很明显,灰度级越高,图像质量越好,但所需的内存也越大. 在机器视觉研究的早期,由于内存和计算能力非常有限,而且十分昂贵,因此视觉研究人员把精力主要集中在研究输入图像仅包含两个灰度值的二值视觉系统上.人们注意到,人类视觉在理解仅由两个灰度级组成的线条、轮廓影像或其它图像时没有任何困难,而且应用场合很多,这一点对研究二值视觉系统的研究人员是一个极大的鼓舞.随着计算机计算能力的不断增强和计算成本的不断下降,人们普遍开始研究基于灰度图像、彩色图像和深度图像的视觉系统.尽管如此,二值视觉系统还是十分有用的,其原因如下:⑴计算二值图像特性的算法非常简单,容易理解和实现,并且计算速度很快.⑵二值视觉所需的内存小,对计算设备要求低.工作在256个灰度级的视觉系统所需内存是工作在相同大小二值图像视觉系统所需内存的八倍.如若利用游程长度编码等技术(见3.4节)还可使所需内存进一步减少.由于二值图像中的许多运算是逻辑运算而不是算术运算,所以所需的处理时间很短.(3)许多二值视觉系统技术也可以用于灰度图像视觉系统上.在灰度或彩色图像中,表示一个目标或物体的一种简易方法就是使用物体模板(mask),物体模板就是一幅二值图像,其中1表示目标上的点,0表示其它点.在物体从背景中分离出来后,为了进行决策,还需要求取物体的几何和拓扑特性,这些特性可以从它的二值图像计算出来.因此,尽管我们是在二值图像上讨论这些方法,但它们的应用并不限于二值图像. 一般来说,当物体轮廓足以用来识别物体且周围环境可以适当地控制时,二值视觉系统是非常有用的.当使用特殊的照明技术和背景并且场景中只有少数物体时,物体可以很容易地从背景中分离出来,并可得到较好的轮廓,比如,许多工业场合都属于这种情况.二值视觉系统的输入一般是灰度图像,通常使用阈值法首先将图像变成二值图像,以便

灰度图像二值化方法研究

灰度图像二值化方法研究 摘要:在人类获取的信息中,视觉信息约占60%,听觉约占20%,其它约占20%。由此可见,视觉信息对人类非常重要。同时,图像是人类获取视觉信息的主要途径。图像二值化是图像预处理中的一项重要技术,在模式识别、光学字符识别、医学成像等方面都有重要应用。论文介绍了图像及数字图像处理技术的一些概念和相关知识;对Matlab7.0 软件的发展和软件在图像处理中的应用做了简要介绍;还介绍了灰度图像二值化方法以及利用Matlab7.0软件工具进行算法的实现。课题重点实现了图像分割技术和边缘检测中灰度图像二值化方法,如Otsu算法、Bernsen算法,并对这些算法运行的实验结果进行分析与比较。 关键词:图像处理;边缘检测;二值化;Matlab;Otsu算法;Bernsen算法 Gray image binarization method Abstract:Human beings obtain a lot of information, among which the visual information is about 60%, the sense of hearing about 20%, and others about 20%. Therefore, the visual information is very important for human beings. Moreover, the images are the primary way, by which a lot of information is obtained. Image binarization, as an important technology in image pre-processing, is widely-employed in pattern recognition, optical character recognition, medical imaging and so forth. In this paper, some notions and relative knowledge in digital image processing technology are introduced; then, the development of Matlab7.0 and its application in image processing briefly introduced; in addition, the method of grayscale image binarization and how to implement these algorithms based on Matlab7.0 are presented. This paper mainly implements the grayscale image binarization method in image segmentation technology and Marginal Detection , such as Otsu algorithm and Bernsen algorithm, and analyzes and compares the experimental results of the above algorithms. Keywords:Image processing;Marginal Detection;Binarization, Matlab;Otsu algorithm;Bernsen algorithm

数字图像处理(第二版)编程试题答案

四.编程题 1.对于24位真彩色测试图像girl,编程分别统计其R、G、B分量的直方图,并显示直方图结果。 解:程序及结果如下: I=imread('girl.bmp'); R=I(:,:,1); [REDcounts,x] = imhist(R); G=I(:,:,2); [Greencounts,y] = imhist(R); B=I(:,:,3); [Bluecounts,z] = imhist(R); figure; subplot(222);imshow(R);title('红'); subplot(223);imshow(R);title('绿'); subplot(224);imshow(R);title('蓝'); figure; subplot(222);imhist(R); subplot(223);imhist(G); subplot(224);imhist(B);

2. 采用Robert算子对灰度测试图像lena进行边缘检测,编程并显示结果。解:程序及结果如下: I=imread('lena.bmp'); figure,imshow(I); BW=edge(I,'robert',0.09); figure,imshow(BW) 3.编程实现对灰度测试图像airplane进行水平镜像,垂直镜像和对角镜像变换,显示各种镜像结果。 解:程序及结果如下: I=imread('airplane.bmp'); I=double(I); H=size(I); I_fliplr(1:H(1),1:H(2))=I(1:H(1),H(2):-1:1); imshow(uint8(I_fliplr)); figure; I_flipud(1:H(1),1:H(2))=I(H(1):-1:1,1:H(2)); imshow(uint8(I_flipud)); figure; I_fliplr_flipud(1:H(1),1:H(2))=I(H(1):-1:1,H(2):-1:1); imshow(uint8(I_fliplr_flipud));

遥感图像处理实例分析05(空间滤波)

空间滤波(spatial filters) 空间滤波(又称local operation) 空间滤波是一种通用的光栅图像处理操作。是根据某像素周围像素的数值,修改图像中的该像素值。它能增强或抑制图像的空间细节信号,提高图像的可视化解释。如应用滤波增强图像的边界信息,去除或减少图像中的噪音图案。突出结构特征等。 空间频率(Spatial frequency) 空间频率是所有类型的光栅数据共有的特性,它的定义是指图像中的任何一特定部分,每单位距离内数据值的变化数量。对图像上数据变化小、或渐进变化的区域称为低频区域(如平滑的湖面),对图像上数据变化大、或迅速变化的区域称为高频区域(如布满密集公路网的城区)。 空间滤波分为三大类: 低通滤波(Low pass filters):强调的是低频信息,平滑了图像的噪音、减少了数据的菱角。因为它不在重视图像的细节部分,所以低通滤波有时又称为平滑或均值滤波。 高通滤波(High pass filters):强调的是高频信息,增强或锐化线性特征,象公路、断层、水陆边界。因为它没有图像的低频部分,增强了图像的细节信息,所以高通滤波有时又称为锐化滤波。 边界检测滤波(Edge detection filters):强调的是图像中目标或特征的边界,以便更容易分析。边界检测滤波通常建立一个灰色背景图和围绕图像目标或特征边界的黑白色线。 卷积核(convolution kernels) 卷积核是指二维矩形滤波距阵(或窗口),包含着与图像像素值有关的权值。滤波距阵(或窗口)在图像上从左向右,自上而下,进行平移滑动,窗口中心的像素值是根据其周围像素值与窗口中对应的每个像素的权值乘积就和而计算出来的。 ER Mapper滤波对话框如图1-1。包含着滤波文件名、滤波距阵和滤波编辑等项。 图1-1 ER Mapper滤波对话框 实习目的: 建立和删除滤波,应用不同的滤波距阵,查看结果。 实习步骤: (一)增加滤波 1.打开和显示一个已存在的算法文件

灰度图像二值化处理

内蒙古科技大学本科毕业论文 二〇一二年四月

摘要 本文介绍了图像及数字图像处理技术的一些概念和相关知识;还介绍了灰度图像和图像二值化的概念及其表示形式;对图像灰度化和图像二值化的优缺点作了简单的的介绍;重点介绍了灰度图像的二值化方法研究,其包括的内容有二值化研究动态和研究方法;对全局阈值法;局部阈值法这两种方法进行了研究讨论。关键字:图像处理、二值化、图像、阈值

Abstract This paper introduces the image and digital image processing technology of some concepts and related knowledge; also introduced the gray-scale image and the images of the two values of the concept and its representation; grayscale images and images of the two values of the advantages and disadvantages to make simple introduction; mainly introduces two gray image binarization method, its includes the contents of two values of research and research methods; the global threshold method; local threshold method, the two methods are discussed. Keywords:image processing, image, threshold value of two,

数字图像处理学(第二版)答案

第四章答案 1.图像增强的目的是什么? 其主要目的是使处理后的图像对某种特定的应用来说,比原始图像更适用。2.什么是直方图? 直方图就是反映一副图像中的灰度级与出现这种灰度的概率之间关系的图形。 3.直方图修改的技术基础是什么? 通过变换函数T(r)可以控制图像灰度级的概率密度函数,从而改变图像的灰度层次。 4.在直方图修改技术中采用的变换函数的基本要什么? (1)在0≤r≤1区间,T(r)单值单调增加; (2)对于0≤r≤1,有0≤T(r)≤1。 5.直方图均衡化处理采用何种变换函数? 累计分布函数 6.直方图均衡化处理的结果是什么? 扩展了原始图像的灰度围 7.假定有64×64大小的图像,灰度为16级,概率分布如下表,试用直方图均衡

00.10.20.30.40.50.60.70.80.91 原图像直方图 S0=0.195 S1=0.335 S2=0.502 S3=0.608 S4=0.681 S5=0.737 S6=0.786 S7=0.827 S8=0.864 S9=0.895 S10=0.922 S11=0.945 S12=0.964 S13=0.981 S14=0.993 S15=1 00.10.20.30.40.50.60.70.80.91 变

换之后 s0≈3/15 s1≈5/15 s2≈8/15 s3≈9/15 s4≈10/15 s5≈11/15 s6≈12/15 s7≈12/15 s8≈13/15 s9≈13/15 s10≈14/15 s11≈14/15 s12≈1 s13≈1 s14≈1 s15≈1 00.10.20.30.40.50.60.70.80.91 最后的新直方图 8.(略) 9.直方图均衡化处理的主要步骤是什么? (1)对给定的待处理图像统计其直方图,求出Pr(R); (2)根据统计出的直方图采用累积分布函数做变换 Sk=T(Rk) 求变换后的新灰度; (3)用新灰度代替旧灰度,求出Ps(s),这一步是近似过程,应根据处理目的尽量做到合理,同时把灰度值相等活近似地合并到一起。 10.什么是“简并”现象?如何克服? 变换后的灰度级减少了,这种现象称为简并。 克服:(1)增加像素的比特数; (2)采用灰度间隔放论。 11.直方图规定化处理的技术难点是什么?如何解决? 主要困难在于如何构成有意义的直方图。 解决方法:(1)给定一个规定的概率密度函数,如高斯、瑞利等函数; (2)规定一个任意可控制的直方图,其形状可由一些直线组成,得到希望的形状后,将这个函数数字化。 12.试写一段直方图均衡化处理的程序。

C图片二值化处理位深度位深度

C#图片二值化处理(位深度→位深度) #region 二值化 /* 1位深度图像颜色表数组255个元素只有用前两个0对应0 1对应255 1位深度图像每个像素占一位 8位深度图像每个像素占一个字节是1位的8倍 */ /// <summary> /// 将源灰度图像二值化,并转化为1位二值图像。 /// </summary> /// <param name="bmp"> 源灰度图像。</param> /// <returns> 1位二值图像。</returns> public static Bitmap GTo2Bit(Bitmap bmp) { if (bmp != null) { // 将源图像内存区域锁定 Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height); BitmapData bmpData = bmp.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed); // 获取图像参数 int leng, offset_1bit = 0; int width = bmpData.Width; int height = bmpData.Height; int stride = bmpData.Stride; // 扫描线的宽度,比实际图片要大 int offset = stride - width; // 显示宽度与扫描线宽度的间隙 IntPtr ptr = bmpData.Scan0; // 获取bmpData的内存起始位置的指针 int scanBytesLength = stride * height; // 用stride宽度,表示这是内存区域的大小if (width % 32 == 0) { leng = width / 8; } else { leng = width / 8 + (4 - (width / 8 % 4)); if (width % 8 != 0) { offset_1bit = leng - width / 8; }

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