主要内容

bwtraceboundary

在二进制图像中跟踪对象

描述

B= bwtraceboundary (BWPFSTEP.在二值图像中跟踪物体的轮廓BW.非零像素属于一个对象,零值像素构成背景。P指定要开始跟踪的对象边界上点的行和列坐标。FSTEP.指定连接到的下一个对象像素的初始搜索方向PB保存区域边界像素的行和列坐标。

B= bwtraceboundary (BWPFSTEP.康涅狄格州描摹边界,在那里康涅狄格州指定所需的连接。

例子

B= bwtraceboundary (BWPFSTEP.康涅狄格州dir指定、要提取的最大边界像素数,以及dir,追踪边界的方向。默认情况下,bwtraceboundary标识边界上的所有像素。

例子

全部折叠

读取图像并显示它。

bw = imread(“blobs.png”);imshow (BW)

图中包含一个轴。轴包含一个图像类型的对象。

在图像中选择一个物体并跟踪其边界。要选择一个对象,请在其边界上指定一个像素。本例使用粗白圆边界上像素的坐标,通过视觉检查获得使用impixelinfo.默认情况下,bwtraceboundary标识边界上的所有像素。

r1 = 163;c1 = 37;contour = bwtraceboundary(BW,[r1 c1],' W ');

在图像上绘制轮廓线。

持有情节(轮廓(:,2),轮廓(:1),‘g’“线宽”, 2)

图中包含一个轴。轴包含2个类型图像的对象,线。

在第二个对象的边界上选择一个点。此示例使用最大矩形的左上角附近的像素附近的坐标。沿顺时针方向追踪前五十边界像素。

r2 = 68;c2 = 95;contourCW = bwtraceboundary(BW,[r2 c2],' W '8 50“顺时针”);

从第二个对象边界上的同一点开始,沿逆时针方向跟踪前50个边界像素。

contourCCW = bwtraceboundary(BW,[r2 c2],' W '8 50“逆时针”);

在图像上用红色标出顺时针方向的轮廓。在图像上用蓝色标出逆时针方向的轮廓线。

绘图(Contourcw(:,2),contourcw(:,1),“r”“线宽”,2)绘图(Contourccw(:,2),contourccw(:,1),“b”“线宽”, 2)

图中包含一个轴。坐标轴包含图像类、线类4个对象。

输入参数

全部折叠

二值图像,指定为二维数字或逻辑矩阵。

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

您希望跟踪开始的对象边界上的起点坐标,指定为格式的2元素向量列(行)

数据类型:

连接到的下一个对象像素的初始搜索方向P,指定为字符向量或字符串标量,如图中所示。

请注意

当连接时康涅狄格州4FSTEP.仅限于价值观“N”“E”“年代”, 和' W '

数据类型:char|字符串

像素连接,指定为8或者4

价值

意义

二维连接

四连接

如果它们的边缘触摸,则像素连接。像素的附近是水平或垂直方向上的相邻像素。

8-连接

如果像素的边缘或角接触,它们就被连接起来。像素的邻域是水平、垂直或对角线方向上的相邻像素。

数据类型:

要提取的最大边界像素数,指定为正整数。默认情况下,INF.bwtraceboundary标识边界上的所有像素。

数据类型:

追踪边界的方向,指定为“顺时针”或者“逆时针”

数据类型:char|字符串

输出参数

全部折叠

区域边界像素的行和列坐标,返回为2矩阵。在每一行B有形式列(行)

算法

bwtraceboundary函数实现了Jacob停止标准修改的Moore邻居跟踪算法。此功能基于边界第一版中呈现的功能基于MATLAB的数字图像处理作者:Gonzalez, R. C., R. E. Woods和S. L. Eddins,新泽西州,皮尔森普伦蒂斯霍尔出版社,2004年。

参考

[1] Gonzalez,R.C.,R.E.Poods和S. L. Eddins,基于MATLAB的数字图像处理2004年,新泽西州皮尔森普伦蒂斯庄园。

扩展功能

另请参阅

|

在R2006A之前介绍