Matlab Skeleton 骨骼化 参数说明

本文详细介绍了MATLAB中用于二值图像形态学操作的bwmorph函数,包括其语法、参数、操作类型以及使用示例。通过实际案例展示了如何应用该函数进行图像处理。

【转载】MathWorks 主页介绍

http://www.mathworks.cn/cn/help/images/ref/bwmorph.html 

bwmorph

Morphological operations on binary images

Syntax

BW2 = bwmorph(BW,operation)
BW2 = bwmorph(BW,operation,n)

Description

BW2 = bwmorph(BW,operation) applies a specific morphological operation to the binary imageBW.

BW2 = bwmorph(BW,operation,n) applies the operationn times. n can be Inf, in which case the operation is repeated until the image no longer changes.

operation is a string that can have one of the values listed below.

Operation

Description

'bothat'

Performs the morphological "bottom hat" operation, returning the image minus the morphological closing of the image (dilation followed by erosion).

'branchpoints'

Find branch points of skeleton. For example:

0  0  1  0  0           0  0  0  0  0
0  0  1  0  0  becomes  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

'bridge'

Bridges unconnected pixels, that is, sets 0-valued pixels to 1 if they have two nonzero neighbors that are not connected. For example:

1  0  0           1  1  0 
1  0  1  becomes  1  1  1 
0  0  1           0  1  1

'clean'

Removes isolated pixels (individual 1s that are surrounded by 0s), such as the center pixel in this pattern.

0  0  0 
0  1  0 
0  0  0

'close'

Performs morphological closing (dilation followed by erosion).

'diag'

Uses diagonal fill to eliminate 8-connectivity of the background. For example:

0  1  0           0  1  0 
1  0  0  becomes  1  1  0 
0  0  0           0  0  0

'dilate'

Performs dilation using the structuring element ones(3).

'endpoints'

Finds end points of skeleton. For example:

1  0  0  0           1  0  0  0
0  1  0  0  becomes  0  0  0  0
0  0  1  0           0  0  1  0
0  0  0  0           0  0  0  0

'erode'

Performs erosion using the structuring element ones(3).

'fill'

Fills isolated interior pixels (individual 0s that are surrounded by 1s), such as the center pixel in this pattern.

1  1  1 
1  0  1 
1  1  1

'hbreak'

Removes H-connected pixels. For example:

1  1  1           1  1  1 
0  1  0  becomes  0  0  0 
1  1  1           1  1  1

'majority'

Sets a pixel to 1 if five or more pixels in its 3-by-3 neighborhood are 1s; otherwise, it sets the pixel to0.

'open'

Performs morphological opening (erosion followed by dilation).

'remove'

Removes interior pixels. This option sets a pixel to 0 if all its 4-connected neighbors are1, thus leaving only the boundary pixels on.

'shrink'

With n = Inf, shrinks objects to points. It removes pixels so that objects without holes shrink to a point, and objects with holes shrink to a connected ring halfway between each hole and the outer boundary. This option preserves the Euler number.

'skel'

With n = Inf, removes pixels on the boundaries of objects but does not allow objects to break apart. The pixels remaining make up the image skeleton. This option preserves the Euler number.

'spur'

Removes spur pixels. For example:

0  0  0  0           0  0  0  0
0  0  0  0           0  0  0  0
0  0  1  0  becomes  0  0  0  0
0  1  0  0           0  1  0  0
1  1  0  0           1  1  0  0

'thicken'

With n = Inf, thickens objects by adding pixels to the exterior of objects until doing so would result in previously unconnected objects being 8-connected. This option preserves the Euler number.

'thin'

With n = Inf, thins objects to lines. It removes pixels so that an object without holes shrinks to a minimally connected stroke, and an object with holes shrinks to a connected ring halfway between each hole and the outer boundary. This option preserves the Euler number. See Algorithms for more detail.

'tophat'

Performs morphological "top hat" operation, returning the image minus the morphological opening of the image (erosion followed by dilation).

bwmorph supports the generation of efficient, production-quality C/C++ code from MATLAB. The text string specifying the operation must be a constant and, for best results, specify an input image of classlogical. To see a complete list of toolbox functions that support code generation, seeSupported Functions.

Class Support

The input image BW can be numeric or logical. It must be 2-D, real and nonsparse. The output imageBW2 is of class logical.

Examples

BW = imread('circles.png');
imshow(BW);

BW2 = bwmorph(BW,'remove');
figure, imshow(BW2)

BW3 = bwmorph(BW,'skel',Inf);
figure, imshow(BW3)

More About

Algorithms

When used with the 'thin' option, bwmorph uses the following algorithm (References [3]):

  1. Divide the image into two distinct subfields in a checkerboard pattern.

  2. In the first subiteration, delete pixel p from the first subfield if and only if the conditions G1, G2, andG3 are all satisfied.

  3. In the second subiteration, delete pixel p from the second subfield if and only if the conditions G1, G2, and are all satisfied.

Condition G1:

where

x1, x2, ...,x8 are the values of the eight neighbors ofp, starting with the east neighbor and numbered in counter-clockwise order.

Condition G2:

where

Condition G3:

Condition G3':

The two subiterations together make up one iteration of the thinning algorithm. When the user specifies an infinite number of iterations (n=Inf), the iterations are repeated until the image stops changing. The conditions are all tested usingapplylut with precomputed lookup tables.

References

[1] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Vol. 1, Addison-Wesley, 1992.

[2] Kong, T. Yung and Azriel Rosenfeld, Topological Algorithms for Digital Image Processing, Elsevier Science, Inc., 1996.

[3] Lam, L., Seong-Whan Lee, and Ching Y. Suen, "Thinning Methodologies-A Comprehensive Survey,"IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol 14, No. 9, September 1992, page 879, bottom of first column through top of second column.

[4] Pratt, William K., Digital Image Processing, John Wiley & Sons, Inc., 1991.

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值