changeset 70:60d9de5e7dd8

Use filter2's default "same" flag to control result size
author pkienzle
date Fri, 30 Jul 2004 01:14:32 +0000
parents d1dd4571c877
children fcff6ca3400a
files dilate.m erode.m
diffstat 2 files changed, 2 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/dilate.m
+++ b/dilate.m
@@ -63,22 +63,12 @@
     error("dilate: alg not implemented.");
   endif
 
-  # store size of BW1
-  s=size(BW1);
-  
-  # calculate center pixel for SE
-  # TODO: check MATLAB to see if in case size(SE) is even 
-  c=floor((size(SE)+1)/2);
-  e=s+c-1;
-
   # "Binarize" BW1, just in case image is not [1,0]
   BW1=BW1!=0;
 
   for i=1:n
     # create result matrix
-    BW1=filter2(BW1,SE,'full');
-    # discard borders 
-    BW1=BW1(e(1):-1:c(1),e(2):-1:c(2)) > 0;
+    BW1=filter2(SE,BW1)>0;
   endfor
 
   BW2=BW1;
--- a/erode.m
+++ b/erode.m
@@ -63,14 +63,6 @@
     error("erode: alg not implemented.");
   endif
 
-  # store size of BW1
-  s=size(BW1);
-  
-  # calculate center pixel for SE
-  # TODO: check MATLAB to see if in case size(SE) is even 
-  c=floor((size(SE)+1)/2);
-  e=s+c-1;
-
   # count ones in mask
   thr=sum(SE(:));
 
@@ -79,9 +71,7 @@
 
   for i=1:n
     # create result matrix
-    BW1=filter2(BW1,SE,'full');
-    # discard borders and "binarize"
-    BW1=BW1(e(1):-1:c(1),e(2):-1:c(2)) == thr;
+    BW1=filter2(SE,BW1) == thr;
   endfor
 
   BW2=BW1;