function punti=media_punti3(punti_doppi,dist_unic_punto)
i=1;

%Se 2 punti hanno una distanza inferiorea dist_unic_punto vengono
%considerati come un unico punto percui vengono mediati, avendo
%l'informazione sui raggi usati per la ricostruzione dei punti invece di
%procedere con una semplice media si ricalcola il punto a partire da tutti
%i raggi.

bound=length(punti_doppi)+1;

while i<bound-1
    j=i+1;
    while j<bound
      if distanza_punto_punto(punti_doppi{i}{1}(1:2),punti_doppi{j}{1}(1:2))<dist_unic_punto
         %Ricalcolo il punto
         R=punti_doppi{i}{2}(1:3);
         for ii=3:length(punti_doppi{i})
            R=[R ; punti_doppi{i}{ii}(1:3)];
         end
         for ii=2:length(punti_doppi{j})
            R=[R ; punti_doppi{j}{ii}(1:3)];
            punti_doppi{i}{length(punti_doppi{i})+1}=punti_doppi{j}{ii};
         end
         [x y]=min_quad_gen(R);
         a=[x y];
         punti_doppi{i}{1}=a;
         tmp=cell(1,length(punti_doppi)-1);
         for ii=1:j-1
            tmp{ii}=punti_doppi{ii}; 
         end
         for ii=j+1:length(punti_doppi)
             tmp(ii-1)=punti_doppi(ii);
         end
         punti_doppi=tmp;         
         bound=bound-1;
         j=j-1;
      end
      j=j+1;  
    end
    i=i+1;
end
punti=punti_doppi; 
end