Index: /issm/trunk-jpl/src/m/morphological/aggregation.m
===================================================================
--- /issm/trunk-jpl/src/m/morphological/aggregation.m	(revision 14525)
+++ /issm/trunk-jpl/src/m/morphological/aggregation.m	(revision 14525)
@@ -0,0 +1,22 @@
+function mask=aggregation(mask,windowsize,threshhold)
+%congrid algorithm using windowsize pixel neighboors.
+
+%check on windowsize
+if mod(windowsize,2)==0,
+	error('windowsize should be an even number');
+end
+
+%convolve: 
+matrix=ones(windowsize,windowsize); 
+
+%convolve mask: 
+mask=filter2(matrix,double(mask),'same');
+
+pos=find(mask>threshhold); 
+pos2=find(mask<=threshhold); 
+mask(pos)=1;
+mask(pos2)=0;
+
+%now subsample: 
+s=size(mask);
+mask=mask(1:windowsize:s(1),1:windowsize:s(2));
Index: /issm/trunk-jpl/src/m/morphological/dilation.m
===================================================================
--- /issm/trunk-jpl/src/m/morphological/dilation.m	(revision 14524)
+++ /issm/trunk-jpl/src/m/morphological/dilation.m	(revision 14525)
@@ -18,7 +18,8 @@
 
 %convolve mask: 
-mask=filter2(matrix,~mask,'same');
-pos=find(mask~=0); mask(pos)=1;
+convol=filter2(matrix,mask,'same');
 
-%opposite to recover the foreground: 
-mask=~mask;
+pos=find(mask==0);
+pos2=find(convol(pos)~=0);
+
+mask(pos(pos2))=1;
Index: /issm/trunk-jpl/src/m/morphological/erosion.m
===================================================================
--- /issm/trunk-jpl/src/m/morphological/erosion.m	(revision 14524)
+++ /issm/trunk-jpl/src/m/morphological/erosion.m	(revision 14525)
@@ -19,4 +19,8 @@
 
 %convolve mask: 
-mask=filter2(matrix,mask,'same');
-pos=find(mask~=0); mask(pos)=1;
+convol=filter2(matrix,mask,'same');
+
+pos=find(mask==1);
+pos2=find(convol(pos)<neighboorhood);
+
+mask(pos(pos2))=0;
Index: /issm/trunk-jpl/src/m/morphological/opening.m
===================================================================
--- /issm/trunk-jpl/src/m/morphological/opening.m	(revision 14524)
+++ /issm/trunk-jpl/src/m/morphological/opening.m	(revision 14525)
@@ -4,3 +4,2 @@
 mask=erosion(mask,neighboorhood);
 mask=dilation(mask,neighboorhood);
-
