bwtraceboundary


跟踪二进制图像中的对象

Syntax

B = bwtraceboundary(BW,P,fstep)
B = bwtraceboundary(BW,P,fstep,conn)
B = bwtraceboundary(BW,P,fstep,conn,m,dir)

Description

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

B = bwtraceboundary(BW,P,fstep,conn)跟踪边界,其中conn指定所需的连接性。

B = bwtraceboundary(BW,P,fstep,conn,m,dir)指定m(要提取的最大边界像素数)和dir(跟踪边界
的方向)。 默认情况下,bwtraceboundary标识边界上的所有像素。

Examples

跟踪边界并可视化轮廓

clear all
close all
clc
BW = imread('blobs.png');
imshow(BW)
%在图像中拾取一个对象并跟踪边界。 要选择一个对象,请在其边界上指定一个像素。 本示例使用在粗大白色圆圈边界上的像素坐标,
%该像素是通过使用impixelinfo进行视觉检查获得的。 默认情况下,bwtraceboundary标识边界上的所有像素。
r1 = 163;
c1 = 37;
contour = bwtraceboundary(BW,[r1 c1],'W');
%在图像上绘制轮廓。
hold on
plot(contour(:,2),contour(:,1),'g','LineWidth',2)
%在第二个对象的边界上选取一个点。 本示例使用最大矩形左上角附近的像素坐标。 沿顺时针方向跟踪前五十个边界像素。
r2 = 68;
c2 = 95;
contourCW = bwtraceboundary(BW,[r2 c2],'W',8,50,'clockwise');
%从第二个对象边界的同一点开始,沿逆时针方向跟踪前五十个边界像素。
contourCCW = bwtraceboundary(BW,[r2 c2],'W',8,50,'counterclockwise');
%在图像上以红色绘制顺时针轮廓。 在图像上以蓝色绘制逆时针轮廓。
plot(contourCW(:,2),contourCW(:,1),'r','LineWidth',2)
plot(contourCCW(:,2),contourCCW(:,1),'b','LineWidth',2)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Input Arguments

P-起点坐标
2元素向量
想要开始跟踪的对象边界上的起点坐标,指定为[行列]格式的2元素向量。

fstep —初始搜索方向
‘N’| ‘NE’| ‘E’| ‘SE’| ‘S’| ‘SW’| ‘W’| “NW”
如图所示,连接到P的下一个目标像素的初始搜索方向,指定为字符向量或字符串标量。
在这里插入图片描述
m —要提取的最大边界像素数
要提取的最大边界像素数,指定为正整数。 默认情况下,m为Inf,bwtraceboundary标识边界上的所有像素

dir —跟踪边界的方向
‘顺时针’(默认)| “逆时针”
跟踪边界的方向,指定为“顺时针”或“逆时针”。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值