主要内容

bwmorph

对二进制图像形态学操作

描述

例子

BW2= bwmorph (BW,操作)适用于一个特定的二进制图像形态学操作BW

请注意

执行对三维容积图像形态学操作,使用bwmorph3

BW2= bwmorph (BW,操作,n)应用操作n次了。n可以,在这种情况下,操作会一直重复,直到图像不再变化。

例子

全部折叠

读二进制图像并显示它。

BW = imread (“circles.png”);imshow (BW);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

删除内部像素离开一个形状的轮廓。

BW2 = bwmorph (BW,“删除”);图imshow (BW2)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

得到图像的骨架。

BW3 = bwmorph (BW,“skel”、正);图imshow (BW3)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

输入参数

全部折叠

二进制图像,指定为一个二维数值矩阵或二维逻辑矩阵。数字输入,任何非零像素被认为是1(真正的)。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

形态学操作来执行,指定为以下之一。

操作

描述

“bothat”

执行形态下帽子操作,返回图像-图像的形态学关闭。

bwmorph函数执行使用社区形态关闭(3)。如果你想执行一个形态下帽子操作有不同的社区,然后使用imbothat函数。

的分歧点

找到分支点的骨架。例如:

0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1变成0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0

注意:要找到分支点,图像必须场大病。创建一个场大病形象,使用bwmorph (BW skel)

“桥”

桥无关的像素,即集0的像素1如果他们有两个非零的邻居不连接。例如:

1 0 0 1 1 0 1 0 1变成了1 1 1 0 0 1 0 1 1

“清洁”

删除孤立像素(个人1包围的年代0),如中心像素在此模式。

0 0 0 0 1 0 0 0 0

“关闭”

执行形态学关闭(膨胀侵蚀)紧随其后。

bwmorph函数执行使用社区形态关闭(3)。如果你想执行一个形态学关闭操作有不同的社区,然后使用imclose函数。

“诊断接头”

使用对角线填补消除8-connectivity的背景。例如:

0 1 0 0 1 0 1 0 0变成1 1 0 0 0 0 0 0 0

“端点”

找到骨架的结束点。例如:

1 0 0 0 1 0 0 0 0 1 0 0变成了0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0

注意:为了找到终点,图像必须场大病。创建一个场大病形象,使用bwmorph (BW skel)

“填满”

填充(个人孤立的内部像素0包围的年代1),如中心像素在此模式。

1 1 1 1 0 1 1 1 1

“hbreak”

删除H-connected像素。例如:

1 1 1 1 1 1 0 1 0变成0 0 0 1 1 1 1 1 1

“大多数”

设置一个像素1如果5个或5个以上3×3的邻居像素的1;否则,将像素0

“开放”

表现形态开放(侵蚀膨胀紧随其后)。

bwmorph函数执行形态开放使用(3)。如果你想执行一个形态学开操作有不同的社区,然后使用imopen函数。

“删除”

删除内部像素。这个选项设置一个像素0如果所有四连接邻国1,因此只留下边界像素。

“缩水”

n =正点通过消除像素收缩对象,对象的边界。对象没有洞缩小一点,和对象与连接孔收缩环中间每个孔和外边界。这个选项保留了欧拉数(也称为欧拉示性数)。

“skel”

n =正、删除像素的边界对象,而不允许对象分开。剩下的像素图像骨架。这个选项保留了欧拉数。

使用3 d卷时,或者当你想删除一个骨架,使用bwskel函数。

“刺激”

去除刺激像素。例如:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0变成了0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0

变厚的

n =正,通过添加增稠对象像素对象的外观到这样做会导致之前被8-connected无关的对象。这个选项保留了欧拉数。

“薄”

n =正通过删除行像素薄对象,对象的边界。对象没有洞缩小到最低限度联系中风,和对象与连接孔收缩环中间每个孔和外边界。这个选项保留了欧拉数。看到算法更多的细节。

“大礼帽”

执行形态大礼帽的操作,返回图像-图像的形态学开。

bwmorph函数执行形态开放使用(3)。如果你想执行一个形态大礼帽操作有不同的社区,然后使用imtophat函数。

提示

进行形态学腐蚀或扩张,使用imerodeimdilate函数,分别。如果你想复制扩张或执行的侵蚀bwmorph函数,然后指定社区(3)

数据类型:字符|字符串

执行操作的次数,一个正整数或指定。当你指定n作为,bwmorph功能重复操作,直到图像不再变化。

例子:One hundred.

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出参数

全部折叠

图像形态学操作后,作为一个二维的逻辑返回矩阵。

数据类型:逻辑

算法

全部折叠

当使用“薄”选项,bwmorph使用下面的算法[3]:

  1. 在第一个subiteration,删除像素p当且仅当条件G1,G2,G3都是满意的。

  2. 在第二个subiteration,删除像素p当且仅当条件G1,G2, G 3 都是满意的。

G1条件:

X H ( p ) = 1

在哪里

X H ( p ) = = 1 4 b

b = { 1 , 如果 x 2 1 = 0 ( x 2 = 1 x 2 + 1 = 1 ) 0 ,否则

x1,x2、……x8的值是8邻居吗p,从东方邻居和按照逆时针的顺序编号。

条件G2:

2 最小值 { n 1 ( p ) , n 2 ( p ) } 3

在哪里

n 1 ( p ) = k = 1 4 x 2 k 1 x 2 k

n 2 ( p ) = k = 1 4 x 2 k x 2 k + 1

G3条件:

( x 2 x 3 x ¯ 8 ) x 1 = 0

G3条件”:

( x 6 x 7 x ¯ 4 ) x 5 = 0

两个稀疏的subiterations传感器组合在一起形成了一个迭代算法。当用户指定一个无限数量的迭代(n =正),重复迭代,直到停止改变形象。都是测试使用的条件applylut预先计算的查找表。

引用

[1]Haralick罗伯特M。琳达·g·夏皮罗,电脑和机器人视觉,卷1,addison - wesley, 1992年。

[2],t·杨和亚斯列罗森菲尔德数字图像处理的拓扑算法爱思唯尔科学公司,1996年。

[3]Lam L。,Seong-Whan Lee, and Ching Y. Suen, "Thinning Methodologies-A Comprehensive Survey,"IEEE模式分析与机器智能9号,14卷,1992年9月,879页的底部通过第二列的第一列。

[4]普拉特,威廉·K。数字图像处理约翰•威利& Sons Inc ., 1991年。

扩展功能

之前介绍过的R2006a