好文档 - 专业文书写作范文服务资料分享网站

图像的细化算法的基础知识

天下 分享 时间: 加入收藏 我要投稿 点赞

1、 前言

图像细化(Image Thinning),一般指二值图像的骨架化(Image Skeletonization) 的一种操作运算。

一个图像的骨架由一些线和曲线(比较理想的是单像素宽度),骨架可以提供一个图像目标的尺寸和形状信息,因而在数字图像分析中具有重要的地位,图像细化(骨架化)是进行图像识别、线条类图像目标分析的重要手段。

本文将探讨骨架的一些性质,给出如何判断一个像素是否属于图像目标的骨架,最后将给出获得图像目标骨架的基本算法。

下图是骨架的基本实例

骨架化过程中必须注意的问题在于,一个目标周边细节的微小变化会对细化后的骨架结果产生较大的变化。如下图所示,仅仅是在图像目标上端分别出现不同的凹凸点,就产生了差异巨大的细化的骨架。

2、 骨架的定义:

比较普遍的方法是采用目标(Object)中轴(Medial Axis)的概念。中轴线的点(像素点)定义为距离目标边界上两个点等距的那些像素。 那么在图像处理中如何实现这种等距的计算?一般有两个途径。 一是使用距离变换(Distance Transform)的方法(在此不讨论)。

另外一个方法介绍如下:

思路:想象一个图像目标四周被火点燃,燃烧的速度四周保持一致,那么四周由边界向质心方向(向内部中心)燃烧时,相互遇到的那条线,就是中轴线。

以长方形为例,可以想象,分别会有许多内接圆,分别沿着长方形(矩形)的四个角向中心方形移动。

拓扑方法是实现图像骨架化的有利工具,我们可以定义一些图像目标边界上可以删除的像素点,以便最后获得图像目标的骨架。

但是,我们还要求保持图像目标(一般常用于线条类的图像目标)的连通性(Connectivity),还不能改变图像目标的个数,不能改变目标内的空洞个数,也不能改变不同目标的相互关系(位置关系等等),一旦有些像素涉及到改变上述内容的,则一律不能被当作删除的图像像素。 基本方法和原理

我们可以利用一个3x3模板来检测一个像素是否应该被删除掉。下面以下图(a)为例

假定3乘3大小的图像中,中心点(黑点)被删除,那么会有如下两种情形: (1) 顶端两个像素和右下端两个像素被分离了,这样就会将原来的一个

目标(物体)分为两个,不符合细化操作的要求。 (2) (因为如果这九个点只是一个物体的局部)顶端两个像素和右下端两

个像素可能是由外部的像素点进行连接的,那么所有像素点(黑点)会形成一个空洞,如果中心点被删除,则会将孔洞消除,又违背了前面提及的细化的规则。 比如,下图说明了这种情况:

如果移掉画矩形框的像素点,右图中发现,孔洞消失了。 图像拓扑学基础

要正确理解细化算法,我们必须要给出图像拓扑学的一些基本知识和图像空间中目标或物体相互关系的一些定义和概念。

(1) 邻居和相邻的概念(Neighbors 和 Adjacency)

首先定义相邻的概念: 在什么条件下,图像中的一个像素(我们这里列举的例子,都认为黑点,像素值为1的点,是目标上的点)和另外一个像素相连。由于这部分内容主要讨论图像目标的骨架化或细化运算,所以,所有图像,我们都特定认为是二值图像,即,所有像素的都取1或0,如上所述,1代表物体,0表示背景 。

对于数字化的栅格图像(通常认为是矩阵,点阵,行、列组合的0,1 点集合),那么,对于一个点P,它周边会有8个邻居,

如果,仅考虑东西南北四个方向,则P点有4邻居(4-Neighbors) 如果还同时考虑另外四个对角方向,则P点有8邻居(8-Neighbors) 因此我们有如下简单的定义:

如果像素点P和Q彼此之间都是各自的4邻居,则它们是4近邻。 如果像素点P和Q彼此之间都是各自的8邻居,则它们是8近邻。 (2) 路径(Paths)和组元(Components)

假设P和Q 为图像目标(物体)上任何两个像素点(不一定非要近邻),并假设P和Q能够被一个像素序列连通。如图所示:

图像的细化算法的基础知识

1、前言图像细化(ImageThinning),一般指二值图像的骨架化(ImageSkeletonization)的一种操作运算。一个图像的骨架由一些线和曲线(比较理想的是单像素宽度),骨架可以提供一个图像目标的尺寸和形状信息,因而在数字图像分析中具有重要的地位,图像细化(骨架化)是进行图像识别、线条类图像目标分析的重要手段。本文将探讨
推荐度:
点击下载文档文档为doc格式
768mi6ciup4zk8m0i2b3
领取福利

微信扫码领取福利

微信扫码分享