📄 im_bpropagation.m
字号:
%IM_BPROPAGATION Binary propagation of images stored in a dataset (DIP_Image)%% B = IM_BPROPAGATION(A1,A2,N,CONNECTIVITY,EDGE_CONDITION)%% INPUT% A1 Dataset with binary object images dataset (possibly multi-band)% to be treated as seed for the propagation% A2 Dataset with binary object images dataset (possibly multi-band)% to be treated as mask for the propagation% N Number of iterations (default inf)% CONNECTIVITY See BPROPAGATION% EDGE_CONDITION Value of edge, default 1%% OUTPUT% B Dataset with propagated images%% DESCRIPTION% The binary images in A1 are dilated under the condition that the result % stays inside the components stored in A2.%% EXAMPLE% a = delft_idb; a = seldat(a,9); delfigs% mask = a*im_gray*im_threshold; figure, show(mask)% seed = mask*im_berosion; figure, show(seed)% cleaned = im_bpropagation(seed,mask); figure, show(cleaned)% showfigs%% SEE ALSO% DATASETS, DATAFILES, DIP_IMAGE, BPROPAGATION% Copyright: R.P.W. Duin, r.p.w.duin@prtools.org% Faculty EWI, Delft University of Technology% P.O. Box 5031, 2600 GA Delft, The Netherlandsfunction b = im_bpropagation(a1,a2,n,connect,edgecon) prtrace(mfilename); if nargin < 5 | isempty(edgecon), edgecon = 1; end if nargin < 4 | isempty(connect), connect = 2; end if nargin < 3 | isempty(n), n = inf; end if isdataset(a1) if ~isdataset(a2) error('Seed and mask images should be both datasets') end fsize = getfeatsize(a1); if any(getfeatsize(a2) ~= fsize) error('Image structures of seed and mask images should be identical') end if length(fsize) == 2, fsize = [fsize 1]; end if size(a1,1) ~= size(a2,1) error('Same number of seed and mask images expected') end out = []; seed = data2im(a1); mask = data2im(a2); for i=1:size(a1,1) for j=1:fsize(3) f = feval(mfilename,seed(:,:,j,i),mask(:,:,j,i),n,connect,edgecon); seed(:,:,j,i) = f; end end b = setdat(a,im2obj); elseif isdatafile(a1) if ~isdatafile(a2) error('Seed and mask images should be both datafiles') end b = dyadic(a1,mfilename,a2,{n,connect,edgecon}); elseif isa(a1,'double') | isa(a2,'dip_image') % here we have a single image a1 = dip_image(a1,'bin'); a2 = dip_image(a2,'bin'); b = bpropagation(a1,a2,n,connect,edgecon); end return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -