图像骨架提取

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验八图像骨架提取

一、实验要求

1.设计并实现对数字图像进行骨架提取。

2.分析所得到的结果。

二、实验原理

1.实验环境

MATLAB

2.图像的骨架提取原理

●图像细化

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

●骨架的定义及提取原理

比较普遍的方法是采用目标(Object)中轴(Medial Axis)的概念。中轴线的点(像素点)定义为距离目标边界上两个点等距的那些像素。

在图像处理中实现这种等距的计算一般有两个途径。

一是使用距离变换(Distance Transform)的方法(在此不讨论)。

另外一个方法介绍如下:

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

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

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

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

我们可以利用一个3x3模板来检测一个像素是否应该被删除掉。假定3乘3大小的图像中,中心点(黑点)被删除,那么会有如下两种情形:(1)顶端两个像素和右下端两个像素被分离了,这样就会将原来的一个目标(物体)分为两个,不符合细化操作的要求。

(2)(因为如果这九个点只是一个物体的局部)顶端两个像素和右下端两个像素可能是由外部的像素点进行连接的,那么所有像素点(黑点)会形成一个空洞,如果中心点被删除,则会将孔洞消除,又违背了前面提及的细化的规则。

三、实验内容

1.图像骨架提取的程序流程图:

2.实验结果:

原图像二值化的图像

骨架提取消除毛刺后的图像

四、实验总结

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

附录:

clear all;

I=imread('kids.tif');

subplot(2,2,1);

imshow(I);

title('原图像');

level=graythresh(I);

I=im2bw(I,level);subplot(2,2,2);... imshow(I);

re=ones(400,318);

I=re-I;

subplot(2,2,2);

imshow(I);

title('二值化的图像');

bwl=bwmorph(I,'skel',Inf); subplot(2,2,3);

imshow(bwl);

title('骨架提取');

bw2=bwmorph(bwl,'spur',4); subplot(2,2,4)

imshow(bw2)

title('消除毛刺后的图像');

相关文档
最新文档