图像骨架提取

合集下载
  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('消除毛刺后的图像');。

相关文档
最新文档