基于matlab的图形轮廓提取及填充,基于Matlab图形轮廓提取及填充.doc

本文探讨了如何使用MATLAB进行图形轮廓提取,针对bwperim函数的局限性,提出先用bwfill填充孔洞,再通过dilate膨胀图形以确保细小部分的完整。此外,还介绍了轮廓填充的方法,以实现对简单轮廓图形的研究。关键词包括图形处理、边缘检测、图像膨胀和填充算法。
摘要由CSDN通过智能技术生成

基于Matlab图形轮廓提取及填充

基于Matlab图形轮廓提取及填充

摘要:提取图形的形状特征是当前图像处理领域的重要研究内容,而图形的边缘轮廓又能很好地反映形状的信息,因此本文阐述了如何利用matlab较好的提取图形的轮廓,以及将简单轮廓图形填充起来作为形状图形进行研究的算法及代码实现。

关键词:图形;轮廓;膨胀;填充

中图分类号:TP317文献标识码:A 文章编号:1009-3044(2008)09-11722-02

Extraction and Filling of the Outline of Black-and-White Binary Graphics Based on Matlab

JING Ai-bin,LIU Qing,MENG Xiang-zeng

(Shandong Normal University, Jinnan 250014,China)

Abstract: Extracing the characteristic of shape from graphics is an important research field,while the outline can well reflect the information of the shape, so this article elaborates the algorithm and the codes about how to use the matlab to extract outlines of graphics, and to filll the existing outline graphics so as to research them as shape graphics.

Key words: graphics; outline; expansion; filling

1 图形及轮廓的界定

在图像的视觉特征研究领域,形状特征因更接近人的视觉特点,一直是人们的研究重点。而形状的边缘又能很好的反映形状的信息,所以有必要提取图形的边缘轮廓以对以后的深入分析打下基础。

实验之前我们首先阐明两个概念,即图形和轮廓。我们这里所说的图形,指的是有明显的形状和线条特征,但没有太复杂的颜色或纹理特征的简单图像。为了便于研究,本文中所采用的图形为黑白二值图形。

另外,因为我们需要研究的对象是形状而非内部细节,所以本文所涉及的轮廓,指图形的外轮廓,不包括图形内部的孔洞所围成的内部边界,例如,对于示例图1,我们所期望得到的轮廓是如图3所示的外轮廓,而非图2所示图形的整个内外边界轮廓。

2 基于matlab的轮廓提取

图形的外轮廓提取所面临二个问题:

首先,我们知道,在matlab中有一个提取图形轮廓的函数bwperim,但这个函数的局限性在于,它不仅提取外轮廓,对图形区域内部的孔洞所围成的内部边缘也提取出来。如图1中这种带花纹的图形,那些花纹细节也将被提取出来,我们得到的不是一个单纯的蝴蝶的形状,如图2。解决方法是在提取轮廓之前先利用孔洞填补函数bwfill(F,'holes');将这些孔洞填补上。代码如下:

F2=bwfill(F1,'holes');

其次,对于图形中比较细小的部分,例如蝴蝶的触角,提取轮廓后可能这一部分会出现断点,或者提取出一条曲线或直线段而非闭合区域。解决方法是先用膨胀函数dilate(F,SE)将原图形膨胀,这样就可以将细小部分加粗,然后再提取轮廓。其中SE为函数dilate的二值结构元素。SE不能太大也不能太小,太大可能较原图中原本分离的两部分连接起来,而太小的话膨胀效果不明显,细小的区域仍然没得到扩大。实验表明,当SE=为3*3单位矩阵时,轮廓提取的效果较为理想。

下面我们通过实验来具体阐述一下如何用matlab提取轮廓。

我们将图1的文件命名为butter,提取后的轮廓图形重新保存为后缀名为.bmp的文件,则轮廓提取的代码为:

F=imread('butter.bmp');

F1=~im2bw(F); %bwfill函数处理的是背景色为黑色的二值图形,原图为白色背景,故先对原图反色;

F2=bwfill(F1,'holes');

SE=ones(3);

F3=dilate(F2,SE);

F4=bwperim(F2);

figure,imshow(F4); %显示一下轮廓图形,以查看提取后的效果

imwrite(F4, butter2,'bmp');

3 简单轮廓图形的填充

上面我们研究了如何提取黑白图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值