/*----------------------------------------------------------------------------------------

Hit ctrl-enter to execute.

Description:

	This script creates an image resembling a TEM image of an amorphous specimen
	by filtering a random image with a band pass filter.
	 
	Copyright © 2001 Gatan Inc.

------------------------------------------------------------------------------*/


// Set the height and width of the destinantion image
	number width = 512, height = 512								

// Create an image of the same size and fill with random signal
	image randomImage := RealImage("image", 4, width, height)		
	randomImage = Random()											

// Create another image of the same size to contain the square of the Fourier frequency
	image freqSquared := RealImage("Frequency Squared", 4, width, height)

// Set the values of the image to the square of the distance from the image centre (in pixels) 
// i.e. the Fourier frequency 		
	freqSquared = (icol-(width/2))*(icol-(width/2)) + (irow-(height/2))*(irow-(height/2))	
	
// Create a complex image of the same size to be a filter
	complexImage filter := ComplexImage("Filter", 8, width, height)	

// This conditional argument sets the real part of all pixels in the filter image to unity 
// iff the value of the corresponding pixel in the frequency squared image falls within 
// the specified values. Else the pixel is set to zero.
	filter = (freqSquared > 100 && freqSquared < 1000) ? complex(1, 0) : complex(0, 0)			

// FFT the randomimage, filter using the filter image, and take the inverse 
//transform to yield an 'amorphous' image
	image filteredImage := RealIFFT( RealFFT( randomImage ) * filter )		

// Finally, set the image name... and display it.
	FilteredImage.Setname("Simulated Amorphous Image")				
	ShowImage( filteredImage )										








