def compare1d_psd_acovf(): """Compare 1d ACovF in physical coordinates to 1d PSD in physical coordinates, for two similar but different images.""" im = TestImage(shift=True, nx=1000, ny=1000) scale = 100 im.addSin(scale=scale) im.hanningFilter() im.zeroPad() im.calcAll(min_npix=1, min_dr=1) im.showImage() pylab.grid() pylab.savefig('compare1d_image1.%s' %(figformat), format='%s' %(figformat)) im.showPsd2d() pylab.savefig('compare1d_psd2d1.%s' %(figformat), format='%s' %(figformat)) im.showPsd1d() pylab.savefig('compare1d_psd1.%s' %(figformat), format='%s' %(figformat)) im.showAcovf1d() pylab.savefig('compare1d_acovf1.%s' %(figformat), format='%s' %(figformat)) im = TestImage(shift=True, nx=1000, ny=1000) im.addSin(scale=scale*2) im.hanningFilter() im.zeroPad() im.calcAll(min_npix=1, min_dr=1) im.showImage() pylab.grid() pylab.savefig('compare1d_image2.%s' %(figformat), format='%s' %(figformat)) im.showPsd2d() pylab.savefig('compare1d_psd2d2.%s' %(figformat), format='%s' %(figformat)) im.showPsd1d() pylab.savefig('compare1d_psd2.%s' %(figformat), format='%s' %(figformat)) im.showAcovf1d() pylab.savefig('compare1d_acovf2.%s' %(figformat), format='%s' %(figformat)) pylab.close() return
def inversion(): """Generate some example images & invert them to reconstruct the original image.""" im = TestImage(shift=True, nx=1000, ny=1000) #im.addEllipseGrid(gridX=200, gridY=100, semiX=50, semiY=25, value=1) im.addLines(width=20, spacing=200, value=1, angle=45) im.addSin(scale=300) im.hanningFilter() im.zeroPad() #cmap = pylab.cm.gray_r cmap = None clims = im.showImage(cmap=cmap) pylab.savefig('invert_image.%s' %(figformat), format='%s' %(figformat)) im.calcAll(min_npix=1, min_dr=1) # Invert from ACovF and show perfect reconstruction. im.invertAcovf2d() im.invertPsd2d(useI=True) im.invertFft(useI=True) im.showImageI(clims=clims, cmap=cmap) pylab.savefig('invert_acovf2d_good.%s' %(figformat), format='%s' %(figformat)) # Invert from ACovF 2d without phases im.invertAcovf2d(usePhasespec=False, seed=42) im.invertPsd2d(useI=True) im.invertFft(useI=True) im.showImageI(clims=clims, cmap=cmap) pylab.savefig('invert_acovf2d_nophases.%s' %(figformat), format='%s' %(figformat)) # Invert from ACovF 1d with phases im.invertAcovf1d(phasespec=im.phasespec) im.invertAcovf2d(useI=True) im.invertPsd2d(useI=True) im.invertFft(useI=True) im.showImageI(clims=clims, cmap=cmap) pylab.savefig('invert_acovf1d_phases.%s' %(figformat), format='%s' %(figformat)) # Invert from ACovF 1d without phases im.invertAcovf1d(seed=42) im.invertAcovf2d(useI=True) im.invertPsd2d(useI=True) im.invertFft(useI=True) im.showImageI(clims=clims, cmap=cmap) pylab.savefig('invert_acovf1d_nophases.%s' %(figformat), format='%s' %(figformat)) # Recalculate 1-d PSD and ACovF from this last reconstructed image (ACovF1d no phases) im2 = PImagePlots() im2.setImage(im.imageI) im2.calcAll(min_npix=1, min_dr=1) legendlabels=['Reconstructed', 'Original'] im2.showPsd1d(comparison=im, legendlabels=legendlabels) pylab.savefig('invert_recalc_ACovF_Psd1d.%s' %(figformat), format='%s' %(figformat)) im2.showAcovf1d(comparison=im, legendlabels=legendlabels) pylab.savefig('invert_recalc_ACovF_Acovf1d.%s' %(figformat), format='%s' %(figformat)) # Invert from PSD and show perfect reconstruction. im.invertPsd2d() im.invertFft(useI=True) im.showImageI(clims=clims, cmap=cmap) pylab.savefig('invert_psd2d_good.%s' %(figformat), format='%s' %(figformat)) # Invert from PSD 2d without phases im.invertPsd2d(usePhasespec=False, seed=42) im.invertFft(useI=True) im.showImageI(clims=clims, cmap=cmap) pylab.savefig('invert_psd2d_nophases.%s' %(figformat), format='%s' %(figformat)) # Invert from PSD 1d with phases im.invertPsd1d(phasespec=im.phasespec) im.invertPsd2d(useI=True) im.invertFft(useI=True) im.showImageI(clims=clims, cmap=cmap) pylab.savefig('invert_psd1d_phases.%s' %(figformat), format='%s' %(figformat)) # Invert from PSD 1d without phases im.invertPsd1d(seed=42) im.invertPsd2d(useI=True) im.invertFft(useI=True) im.showImageI(clims=clims, cmap=cmap) pylab.savefig('invert_psd1d_nophases.%s' %(figformat), format='%s' %(figformat)) # Recalculate 1-d PSD and ACovF from this last reconstructed image (PSD1d no phases) im2 = PImagePlots() im2.setImage(im.imageI) im2.calcAll(min_npix=1, min_dr=1) im2.showPsd1d(comparison=im, legendlabels=legendlabels) pylab.savefig('invert_recalc_PSD_Psd1d.%s' %(figformat), format='%s' %(figformat)) im2.showAcovf1d(comparison=im, legendlabels=legendlabels) pylab.savefig('invert_recalc_PSD_Acovf1d.%s' %(figformat), format='%s' %(figformat)) pylab.close() return
#im.plotAll(title='Gaussian Noise') im.plotMore(title='Gaussian Noise') pylab.show() exit() # Gaussian image im = TestImage() im.addGaussian(xwidth=20, ywidth=20) im.hanningFilter() im.zeroPad() im.calcAll() im.plotAll(title='Gaussian') # Sin, s=100 im = TestImage() im.addSin(scale=100) im.hanningFilter() im.zeroPad() im.calcAll() im.plotAll(title='Sin, scale=100') # Sin, s=50 im = TestImage() im.addSin(scale=50) im.hanningFilter() im.zeroPad() im.calcAll() im.plotAll(title='Sin, scale=50') # Sin, s=10 im = TestImage()