Home > SuperSegger > segmentation > compConn.m

compConn

PURPOSE ^

compConn : calculates the connectivity of each pixel

SYNOPSIS ^

function im = compConn( imInput, conn )

DESCRIPTION ^

 compConn : calculates the connectivity of each pixel

 INPUT :
       imInput : input image
       conn : values accepted are 4 and 8
              4 two-dimensional four-connected neighborhood
              8 two-dimensional eight-connected neighborhood (default)
 OUTPUT :
       im : output image

 Copyright (C) 2016 Wiggins Lab 
 Written by Stella Stylianidou, Paul Wiggins.
 University of Washington, 2016
 This file is part of SuperSegger.
 
 SuperSegger 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
 (at your option) any later version.
 
 SuperSegger 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 SuperSegger.  If not, see <http://www.gnu.org/licenses/>.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function im = compConn( imInput, conn )
0002 % compConn : calculates the connectivity of each pixel
0003 %
0004 % INPUT :
0005 %       imInput : input image
0006 %       conn : values accepted are 4 and 8
0007 %              4 two-dimensional four-connected neighborhood
0008 %              8 two-dimensional eight-connected neighborhood (default)
0009 % OUTPUT :
0010 %       im : output image
0011 %
0012 % Copyright (C) 2016 Wiggins Lab
0013 % Written by Stella Stylianidou, Paul Wiggins.
0014 % University of Washington, 2016
0015 % This file is part of SuperSegger.
0016 %
0017 % SuperSegger is free software: you can redistribute it and/or modify
0018 % it under the terms of the GNU General Public License as published by
0019 % the Free Software Foundation, either version 3 of the License, or
0020 % (at your option) any later version.
0021 %
0022 % SuperSegger is distributed in the hope that it will be useful,
0023 % but WITHOUT ANY WARRANTY; without even the implied warranty of
0024 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0025 % GNU General Public License for more details.
0026 %
0027 % You should have received a copy of the GNU General Public License
0028 % along with SuperSegger.  If not, see <http://www.gnu.org/licenses/>.
0029 
0030 
0031 if ~exist( 'conn' );
0032     conn = 8;
0033 end
0034 
0035 im = uint8(imInput>0);
0036 ss = size(im);
0037 imPadded = zeros(2+ss(1),2+ss(2));
0038 imPadded(2:ss(1)+1,2:ss(2)+1) = im;
0039 
0040 if conn == 8
0041     im = (imPadded(1:ss(1),1:ss(2)) + imPadded(2:ss(1)+1,1:ss(2)) + imPadded(3:ss(1)+2,1:ss(2))...
0042         +imPadded(1:ss(1),2:ss(2)+1)                       + imPadded(3:ss(1)+2,2:ss(2)+1)...
0043         +imPadded(1:ss(1),3:ss(2)+2) + imPadded(2:ss(1)+1,3:ss(2)+2) + imPadded(3:ss(1)+2,3:ss(2)+2) );
0044 elseif conn == 4;
0045     im = (imPadded(2:ss(1)+1,1:ss(2))...
0046         +imPadded(1:ss(1),2:ss(2)+1) + imPadded(3:ss(1)+2,2:ss(2)+1)...
0047         +imPadded(2:ss(1)+1,3:ss(2)+2));
0048 else
0049     disp('error in function CompConn')
0050 end
0051 
0052 im = double(im).*double(imInput);
0053 
0054 
0055 end
0056

Generated on Thu 19-Jan-2017 13:55:21 by m2html © 2005