def elliptical(): """Generate a test image with random ellipses and background noise.""" im = TestImage(shift=True, nx=1000, ny=1000) im.addEllipseRandom(nEllipse=100, value=5) im.addNoise(sigma=1) im.hanningFilter() #im.zeroPad() im.calcAll(min_npix=2, min_dr=1) im.plotMore() pylab.savefig('elliptical.%s' %(figformat), format='%s' %(figformat)) # Invert from ACovF 1d without phases im.invertAcovf1d() im.invertAcovf2d(useI=True) im.invertPsd2d(useI=True) im.invertFft(useI=True) im.showImageAndImageI() pylab.savefig('elliptical_invert.%s' %(figformat), format='%s' %(figformat)) pylab.close() return
import numpy import pylab from testImage import TestImage # from pImage import PImage # if you don't need to do any plotting from pImagePlots import PImagePlots # if you do need to use the plotting functions for PImage # Use TestImage to set up the image im = TestImage(shift=True, nx=750, ny=750) im.addLines(spacing=50, width=10, value=10, angle=0) #im.addGaussian(xwidth=30, ywidth=30) #im.addSin(scale=100) #im.addCircle(radius=20) #im.addEllipseRandom(nEllipse=100, value=5) im.addNoise(sigma=1.) #im.hanningFilter() #im.zeroPad() # Calculate FFT/PSD2d/ACovF/PSD1d in one go (can do these separately too). # Use automatic binsize or user-defined binsize. im.calcAll(min_dr=1.0, min_npix=2) im.plotMore() #im.showImage() #im.showAcovf2d(log=True, imag=False) #im.showPsd1d() #im.showAcovf1d() #im.showSf() # Start at various points in inverting to reconstruct image (comment out stages above where you want to start).
im.hanningFilter() im.zeroPad() im.calcAll() im.plotAll(title='Ring') # ellipses, grid im = TestImage() im.addEllipseGrid(gridX=80, gridY=80, semiX=20., semiY=40., angle=45.) im.hanningFilter() im.zeroPad() im.calcAll() im.plotAll(title='Ellipse, grid') # ellipses, random locations im = TestImage() im.addEllipseRandom(value=5) im.hanningFilter() im.zeroPad() im.calcAll() im.plotAll(title='Ellipse, random') # ellipses, random locations, with noise #im = TestImage() #im.addEllipseRandom(value=5) im.addNoise() #im.zeroPad() im.calcAll() im.plotAll(title='Ellipse, random, with noise') pylab.show()