matlab中bound2im,bound2im.m

function B = bound2im(b, M, N, x0, y0)

%BOUND2IM Converts a boundary to an image.

% B = BOUND2IM(b) converts b, an np-by-2 or 2-by-np array

% representing the integer coordinates of a boundary, into a binary

% image with 1s in the locations defined by the coordinates in b

% and 0s elsewhere.

%

% B = BOUND2IM(b, M, N) places the boundary approximately centered

% in an M-by-N image. If any part of the boundary is outside the

% M-by-N rectangle, an error is issued.

%

% B = BOUND2IM(b, M, N, X0, Y0) places the boundary in an image of

% size M-by-N, with the topmost boundary point located at X0 and

% the leftmost point located at Y0. If the shifted boundary is

% outside the M-by-N rectangle, an error is issued. XO and X0 must

% be positive integers.

% Copyright 2002-2004 R. C. Gonzalez, R. E. Woods, & S. L. Eddins

% Digital Image Processing Using MATLAB, Prentice-Hall, 2004

% $Revision: 1.6 $ $Date: 2003/06/14 16:21:28 $

[np, nc] = size(b);

if np < nc

b = b'; % To convert to size np-by-2.

[np, nc] = size(b);

end

% Make sure the coordinates are integers.

x = round(b(:, 1));

y = round(b(:, 2));

% Set up the default size parameters.

x = x - min(x) + 1;

y = y - min(y) + 1;

B = false(max(x), max(y));

C = max(x) - min(x) + 1;

D = max(y) - min(y) + 1;

if nargin == 1

% Use the preceding default values.

elseif nargin == 3

if C > M | D > N

error('The boundary is outside the M-by-N region.')

end

% The image size will be M-by-N. Set up the parameters for this.

B = false(M, N);

% Distribute extra rows approx. even between top and bottom.

NR = round((M - C)/2);

NC = round((N - D)/2); % The same for columns.

x = x + NR; % Offset the boundary to new position.

y = y + NC;

elseif nargin == 5

if x0 < 0 | y0 < 0

error('x0 and y0 must be positive integers.')

end

x = x + round(x0) - 1;

y = y + round(y0) - 1;

C = C + x0 - 1;

D = D + y0 - 1;

if C > M | D > N

error('The shifted boundary is outside the M-by-N region.')

end

B = false(M, N);

else

error('Incorrect number of inputs.')

end

B(sub2ind(size(B), x, y)) = true;

一键复制

编辑

Web IDE

原始数据

标准视图

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值