function y=imgrayrescale(x,levels,d)

[hs vs]=size(x);
y=zeros(hs,vs);
if ((rem(hs,2)==1)|(rem(vs,2)==1))
    fprintf(1,'Errore! Le dimensioni dell''immagine devono essere pari.\n');
	return
end
for i=1:levels/d
    [p,q]=find(x>=(i-1)*d & x<i*d);
    for j=1:length(p)
        y(p(j),q(j))=i*d-1;
    end
end
