next up previous contents
Next: Procedura di cleaning per Up: Codice prodotto Previous: Procedure di cleaning per   Contents

Procedura di cleaning per bad deep columns and rows

pro cleandeep,inf,out
;IPOTESI: l'immagine ha le bande cattive ORIZZONTALI
;SET s=10 in cleantot
;SET n=0.8 in cleantot
on_error,2
in=rotate(inf,1)
dim=size(in)
hs=dim(1)
vs=dim(2)
d=8       ;distanza fra blocchi di bande cattive: periodicita' dei canali
          ;cattivi dovuta all'elettronica del dispositivo
k=(hs-1)/d ;numero max. di colonne da pulire (es. hs=128, d=8, k=15)
g=4     ;posto della prima colonna buona 
b=5     ;posto della prima colonna cattiva 
c=6     ;posto della seconda colonna cattiva
e=7     ;posto della seconda colonna buona 	
v=fltarr(k,vs)
medianv=fltarr(vs)
for i=0,(k-1) do begin
  v(i,*)=(in(g+i*d,*)+in(e+i*d,*))/2-(in(b+i*d,*)+in(c+i*d,*))/2
endfor
for i=0,(vs-1) do begin
  resistant_mean,v(*,i),2.5,mean,sigma,num_rej
  medianv(i)=mean
endfor  
outt=in
for i=0,(k-1) do begin
  outt(b+i*d,*)=in(b+i*d,*)+medianv
  outt(c+i*d,*)=in(c+i*d,*)+medianv
endfor
out=rotate(outt,3)
end



Anna Custo 2002-02-05