def goSino(): na,ka = 21,-10 # sampling for inverse A of wavelet in PS image nh,kh = 21,-10 # sampling for wavelet H in PP image nt,dt,ft = 501,0.004,0.000 # used for plotting only nx,dx,fx = 721,0.015,0.000 sa = Sampling(na,dt,ka*dt) sh = Sampling(nh,dt,kh*dt) st = Sampling(nt,dt,ft) sx = Sampling(nx,dx,fx) tmin,tmax = 100,400 # PP time window sfac = 1.000 # stabilization factor f,g,u = getSinoImages() # PP image, PS image, and warping u(t,x) ww = WaveletWarpingH() ww.setTimeRange(tmin,tmax) ww.setStabilityFactor(sfac) slg = ww.applyS(u,ww.applyL(u,g)) # PS warping without wavelets plotImage(st,sx,f,zoom=True,png="pp") plotImage(st,sx,slg,zoom=True,png="psw1") e1 = ww.rms(sub(f,slg)) for niter in [0]: print "niter =",niter suffix = str(niter) hf = zerofloat(nh); hf[-kh] = 1.0 # initial wavelet h in f ag = ww.getInverseA(na,ka,nh,kh,hf,u,f,g) # inverse a in g for jiter in range(niter): hf = ww.getWaveletH(na,ka,ag,nh,kh) # wavelet h in f ag = ww.getInverseA(na,ka,nh,kh,hf,u,f,g) # inverse a in g hg = ww.getWaveletH(na,ka,ag,nh,kh) # wavelet in g hslag = ww.applyHSLA(na,ka,ag,nh,kh,hf,u,g) # PS warping with wavelets hslag = mul(hslag,ww.rms(f)/ww.rms(hslag)) ew = ww.rms(sub(f,hslag)) print " e1 =",e1," ew =",ew plotImage(st,sx,hslag,zoom=True,png="psww"+suffix) plotWaveletsPpPs(sh,hf,hg,png="wavelets"+suffix)