--- a
+++ b/util/connComp2.m
@@ -0,0 +1,76 @@
+function [new] = connComp2(maskR2, nCompTen, fill)
+%nCompTen = numero di componenti connessi da mantenere (partendo dai pił grandi)
+
+[L,num] = bwlabel(maskR2, 8);
+
+if (nCompTen >= num)
+    nCompTen = num;
+end
+
+count = zeros(num,1);
+for c=1:num
+    count(c) = numel(find(L==c));
+end
+
+maxT = max(count);
+
+for t=1:num-nCompTen   %for
+    %fprintf('%d\t',t);
+    mint = min(count);
+    
+    if (mint == maxT)
+        break;
+    end
+    
+    clear i j
+    
+    Ic = find(count == mint);
+    Ic = Ic(1);
+    
+    I = find(L==Ic);
+    maskR2(I) = 0;
+    
+    count(Ic) = maxT+1000;
+      
+end %end for
+
+
+
+[L,num] = bwlabel(~maskR2, 8);
+count = zeros(num,1);
+for (c=1:num)
+    count(c) = numel(find(L==c));
+end
+
+maxT = max(count);
+for (t=1:num-nCompTen-1)   %for
+    mint = min(count);
+    
+    if (mint == maxT)
+        break;
+    end
+    
+    clear i j
+    
+    Ic = find(count == mint);
+    Ic = Ic(1);
+    
+    I = find(L==Ic);
+    maskR2(I) = 0;
+    
+    count(Ic) = maxT+1000;
+    
+     
+end %end for
+
+
+if (fill)
+    maskR2 = imfill(maskR2,'holes');
+end
+
+
+
+new = maskR2;
+
+
+