二值图像与数学形态学处理

1.二值图像

1.1概念补充

(1)定义

二值图像是仅含有两级灰度(一般为0,1)的数字图像。

(2)特点

1)数据量小;

2)处理速度快,成本低,实时性强;

3)能定义几何学的各种概念.

其中,第三条尤为重要。

(3)举例

通过例子,看看二值图像。

源代码

%1.二值图像
%1)二值图像转化,显示
I = imread('peppers.png');
figure,imshow(I),title('Original image');

J = im2bw(I);%经转化,图像J的数据只有0(黑),1(白)之分了
figure,imshow(J),title('Binary image');

运行结果

在这里插入图片描述

1.2二值图/灰度图/RGB图像

在数字图像处理中,我们常见到的三种类型的图像,就是二值图像,灰度图像和RGB图像,这里,便再作赘述,以求巩固理解:

1)二值图像

二值图像可看成一种只包含黑白两个灰度的灰度图像;也可以看作只有两种颜色的索引图象。

二值图像可以保存为双精度和uint8数据类型数组,显然uint8更加节省空间,所以一般返回二值图像处理函数就保存为uint8类型逻辑数组。

2)灰度图像

灰度图像只表示了图像的强度信息,而没有颜色信息。其保存在矩阵中的每一像素点的元素值代表不同的亮度或灰度级。

3)RGB图像

RGB图像又称为真彩色图像,它是利用R,G,B三个分量来表示一个像素的颜色,RGB分别是红,绿,蓝三基色分量,由此可以组合成任意一种颜色。它储存为一个三维数组,元素值表示该像素点的颜色。

1.3邻接/连通/距离变换

由于二值图像可看作只有0,1两个灰度值的存储矩阵,非常简单,便利,可以定义许多数学上的集合与几何特征,所以很多复杂的数字图像处理算法,在初始阶段都会先将待处理的图像转化为二值图像,以便于后期处理。由此可见,二值图像处理在图像处理中地位非常重要。

下面,介绍一下在二值图像基础上定义的集合(几何)特征邻接性,连通性,和像素间的距离。

(1)邻域和邻接

a.邻域:像素(i,j)附近的像素形成的区域。

b.分类

常见的有4-邻域,8-邻域

(1)4-邻域与4-邻接

像素(i,j)上、下、左、右4个像素构成的区域称为像素(i,j)的4—邻域。互为4—邻域的两像素叫4—邻接(或4—连通) 。

(2)8-邻域与8-邻接

像素(i,j)上、下、左、右4个像素和4个对角线像素,称为像素(i,j)的8—邻域。互为8—邻域的两像素叫8—邻接(或8—连通)。

连通的定义:设S使图像的一个子集,P,Q两个像素点在S中,若P,Q之间存在一条路径,使得连接P,Q路径上的像素点也都在S中,那么就讲P,Q之间是连通的。

若这个路径是4-邻接点组成的,则称此P,Q之间为4-连通的;若是8-邻接点组成,则成为8-连通路径。

(2)像素的连接

概念:在二值图像中,具有两个相同数值的象素a1和a2,若所有与它们具有相同值的象素,能够在4-/8-邻域内构成一个从a1到a2的邻接的象素序列,则我们把象素a1和a2叫做4-/8-连接。其象素序列叫4-/8-路径。

(3)求取像素的连接数


计算前提条件:

a.4-连接数计算公式

b.8-连接数计算公式

c.举例–求取8-连接数

其中,上图例子中,黑色部分表示1,白色部分表示0。

d.基于像素点的8-连接数将像素点分类

(4)标签图像

对二值图像的不同连通分量予以区分,是后期求取个连通分量面积等处理策略的基础,Matlab中提供了bwlabel函数用于对二值图像中的连通分量进行编号,详细参见bwlabel函数的使用

(5)像素间的距离

a.常见距离表示式

b.图形展示

2.数学形态学处理

引言:数学形态学的主要研究内容是图像形态几何特征,结构特征的定量描述与分析,是线性向非线性处理的延拓。形态变换最大的特点就是能将大量复杂的影像处理运算转化成最基本的移位与逻辑运算的复合来进行实现,这是其方法在图像处理的诸多领域能越来越广泛的被人们所关注,挖掘和应用,形态分析的理论,方法及其与之相关的诸多技术能够不断发展,深入和创新的重要原因。

2.1概述

(1)概述

  • 形态学一般指生物学中研究动物和植物结构的一个分支;

  • 数学形态学(也称图像代数)表示以形态为基础对图像进行分析的数学工具;

  • 基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的;

  • 形态学图像处理的数学基础和所用语言是集合论

  • 形态学图像处理的应用可简化图像数据保持基本的形状特性,并除去不相干的结构

  • 形态学图像处理的基本运算有4个:膨胀腐蚀开操作闭操作

(2)发展

  • 初期的数学形态学方法可应用于二值图像,所以需将灰度图像先进行二值化。来灰度形态学得到发展,使得数学形态学方法不仅可用于二值图像直接应用于各种灰度图像和彩色图像

  • 二值形态学中的运算对象集合,但实际运算中当涉及两个集合时并不把它们看作是互相对等的一般设A为图像集合,B为结构元素,数学形态学运算是用B对A进行操作

  • 结构元素本身实际上也一个图像集合。对每个结构元素,指定一个原点,它是结构元素参与形态学运算的参考点。注意原点可以包含在结构元素中也可不包含在结构元素中(即原点并不一定要属于结构元素),但两种情况下的运算结果常不相同

2.2基本概念

(1)并,交,补,差

(2)反射、平移

1)反射


2)平移


(4)基本逻辑运算

二值图像的基本逻辑运算:

2.3腐蚀与膨胀

引入:腐蚀和膨胀效果图

(1)膨胀

1)定义:膨胀的运算符为⊕,A用B来膨胀记作A⊕B。

2)效果:使二值图像扩大一圈(那些1扩大一圈)。

3)算法:

  • 用3×3的结构元素,扫描图像的每一个像素

  • 用结构元素与其覆盖的二值图像做“与”操作

  • 如果都为0,结果图像的该像素为0。否则为1

实质,就是将处理点周围结构元素邻域内的灰度值最大值作为该点的灰度值。

4)举例:


5)扩展到灰度图/彩图

灰度图膨胀:在对灰度图中一点进行膨胀时,将结构元素 B 覆盖区域的像素中的最大值提取,作为图像中此点的数值。

RGB彩图膨胀:同理。由于彩图是由R,G,B三分量图叠加而成,因此先将RGB图像的三基色分量图提取出来,再分别对三分量图进行膨胀运算,最后叠加在一起就完成了对RGB彩图的膨胀运算。

效果如下图:

(2)腐蚀

1)定义:腐蚀的运算符为⊙,A用B来腐蚀记作A⊙B。

2)效果:使二值图像减小一圈。

3)算法:

  • 用3×3的结构元素,扫描图像的每一个像素

  • 用结构元素与其覆盖的二值图像做“与”操作

  • 如果都为1,结果图像的该像素为1。否则为0。

实质,就是将处理点周围结构元素邻域内的灰度值最小值作为该点的灰度值。

4)举例:

5)扩展到灰度图/彩图

灰度图腐蚀:在对灰度图中一点进行膨胀时,将结构元素 B 覆盖区域的像素中的最小值提取,作为图像中此点的数值。

RGB彩图腐蚀:同理。由于彩图是由R,G,B三分量图叠加而成,因此先将RGB图像的三基色分量图提取出来,再分别对三分量图进行腐蚀运算,最后叠加在一起就完成了对RGB彩图的腐蚀运算。

效果如下图:

2.4腐蚀与膨胀的组合运算

2.4.1开运算与闭运算

开运算:


闭运算:


处理效果举例:

2.4.2形态学梯度

a.思路

膨胀结果与腐蚀结果之差。

b.用途

可用于计算物体的边缘轮廓。

c.举例

2.5线图形化

(1)距离变换和骨架

a.距离变换

距离变换指的是求二值图像中各1像素到0像素最短距离的处理。

b.骨架

经过距离变换得到的图像中,最大值点的集合就形成骨架,即位于图像中心部分的线像素的集合,也可以看作是图形各内接圆中心的集合

特性:骨架,它反映了原图形的形状,给定距离和骨架就能恢复该图形,但恢复的图形不能保证原始图形的连接性。

故:骨架常常用于图形压缩提取图形幅宽形状特征等。

(2)细化

细化是从二值图像中提取线宽为1像素的中心线的操作。

2.6击中/击不中变换

击中/击不中变换是形状检测的一种基本工具。在处理中,其需要两个结构元素,这也是和前面形态学处理不同的地方。

a.原理:一般来说,一个物体的结构可以由物体内部各种成分之间的关系来确定。为了研究物体(图像中)的结构,可以用各种成分(诸多结构元素)对其进行检验,判定哪些成分在图像中,哪些成分不在图像中,从而确定图像的结构。

b.数学定义:A对B进行的击中/B在A中的匹配表示为:

解释


2.7形态学处理应用

(1)边界提取

方法

图示:先用B对A腐蚀,然后用A减去腐蚀的结果:


例子

(2)区域填充

使用迭代法进行区域填充/孔洞填充:

方法

图示


例子

(3)连通分量的提取

方法

例子

(4)凸壳

定义

计算方法


例子


评价

(5)细化/粗化

1.细化

方法


例子

2.粗化

粗化与细化构成形态学对偶

方法

例子

(6)裁剪

方法

例子

2.8Matlab中形态学处理函数推荐

在Matlab中提供了大量的形态学处理函数,这里推荐看:常用形态学操作函数

参考文献:《Matlab图像处理与界面编程》,秦襄培编著,电子工业出版社

张贴在2