⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 im_bpropagation.m

📁 The pattern recognition matlab toolbox
💻 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 + -