function varargout = BMorphBase(varargin) % Opérations morphologiques de base % Pour image binaire à 1 plan % % INPUT: % - image 1x1 % - cell array des paramètres : % + opération : 'dilate' | 'erode' | 'close' | 'open' % + dimension N pour un élement structurant de taille (2N+1,2N+1) % % OUTPUT: % - image 1x1 % % Plugin for OpenIsaac % version 1 % © 2001-2018 Bertrand Vigouroux / Alain Clément - Université d'Angers %--------------------------------------------------------------------------------------------------- % Copyright 2007 - 2018 Université d'Angers - Author: Alain Clément % % This program is free software; you can redistribute it and/or modify it under the terms of the GNU % General Public License as published by the Free Software Foundation; either version 3 of the % License, or any later version. This program is distributed in the hope that it will be useful, but % WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A % PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received % a copy of the GNU General Public License along with this program; if not, write to the Free % Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. %--------------------------------------------------------------------------------------------------- % PLUGIN PARAMETERS if (nargin == 1) && strcmp(varargin{1},'-f') % input varargout{1} = {'IMG','image binaire source', ... 'DATA','cell array des paramètres'}; % output varargout{2} = {'IMG','image binaire résultat'}; return end % INPUT ObjIMG = varargin{1}; DataVal = IsaacDATA_get(varargin{2},'Val'); oper = DataVal{1}; iter = DataVal{2}; %--------------------------------------------------------------------------------------------------- if (IsaacIMG_get(ObjIMG,'BitClass') ~= 1) || (IsaacIMG_get(ObjIMG,'DimZ') ~= 1) error('image incompatible') end switch oper case{'dilate','erode'} ObjIMG = IsaacIMG_mat2img(ObjIMG,bwmorph(IsaacIMG_img2mat(ObjIMG),oper,iter)); case{'open'} ObjIMG = IsaacIMG_mat2img(ObjIMG, ... bwmorph(bwmorph(IsaacIMG_img2mat(ObjIMG),'erode',iter),'dilate',iter)); case{'close'} ObjIMG = IsaacIMG_mat2img(ObjIMG, ... bwmorph(bwmorph(IsaacIMG_img2mat(ObjIMG),'dilate',iter),'erode',iter)); otherwise error('opération invalide') end %--------------------------------------------------------------------------------------------------- % OUTPUT varargout{1} = ObjIMG;