Well, in the interim, here's some helpful information to get you started.
Introduction
As a side note, the FFT (Fast Fourier Transform) is a representation of the image in terms of its frequency components. Fourier came up with the powerful concept that any periodic signal can be represented by a summation of sine and cosine functions of varying amplitude, frequency and phase. The classic example of this is the step function (in graphical terms this would be a high contrast edge like a black line on a white background) - this is shown in the Wikipedia entry here:
http://upload.wikimedia.org …px-Fourier_Series.svg.png
As you add more terms you get a more accurate representation of the signal. So, the FFT of a signal takes the signal in one form (for example, the spatial representation in terms of pixel intensity in the X and Y dimensions) and transforms that signal into the frequency domain, where certain kinds of mathematical operations are a lot more efficient and easier to perform.
When you open an image in ImageJ, it can present the image to you in a few ways. The easiest way I have found to work with images that need FFT filtering is to convert the original TIFF to grayscale and work with the grayscale image in ImageJ to develop your filter. You can do this a number of ways - I usually take the color original, convert to Lab in Photoshop and use the L channel as my starting point. If the pattern data are predominantly in the L channel (i.e., not color information) then I can FFT and filter the L channel black and white image, and simply replace the original L channel with the filtered one -this is what I did in the above image.
So, how to go about FFTing and building a filter.
Creating the FFT of your patterned imageDownload ImageJ here - it is free and Java, platform independent:
http://rsbweb.nih.gov/ij/
Open your black and white unfiltered, patterned image in ImageJ and choose the menu item "Process > FFT >FFT" - this will perform the Fast Fourier Transform of the image from the spatial domain into the frequency domain. What you see as a result of the FFT is a representation of sines and cosines, so to speak, contained in your image. The grayscale representation is magnitude or power spectrum (think amplitude of the sine functions) of your image -increasing grayscale intensity means higher amplitude and the distance away from the center of the FFT is increasing frequency. So, information in the middle of the FFT is low frequency image content, while white dots, stars and lines away form the center of the FFT represent high frequency content. Understanding this is critical to being able to interpret the FFT in terms of what dots and stars and lines you want to suppress when you perform the filtering. Regular patterns usually show up as distinct patterns of high intensity dots and stars on the FFT power spectrum.
Save your FFT power spectrum image as a TIFF.
Filter ConstructionFiltering is the selective rejection of certain frequency components - the filter gets applied and then the IFFT (Inverse FFT) is performed to reconstruct the filtered image - i.e., take the filtered data from the frequency domain back to the spatial domain.
Bring your saved FFT power spectrum image into Photoshop or some similar paint program. Here is where you will construct the filter. Identify all of the dots and blips that represent the pattern (again, this is where you need to play around with FFTing a bunch of images to get the hang of interpreting the FFT in terms of image content) and paint a black dot over the features you want to reject - be conservative and choose a brush size that will just cover each beep and boop - if you start filtering real content, your image will suffer.
I usually use a soft brush (0 hardness) - In Photoshop, I open the FFT image that I saved in ImageJ and then create a new layer over that image. I paint the black dots on this new layer. Once I am finished, I insert a new layer between the FFT background image and the painted filter - I fill this new layer with white. Now I have a filter image that is white everywhere I want to pass the FFT data and black where I want to reject the FFT data. Flatten and save as a TIFF.
Applying the Filter in ImageJThe way that ImageJ applies this filter is not immediately obvious.
You need to open the filter image in ImageJ for ImageJ to be able to use it.So, in ImageJ
1) Open the original L channel (or black and white) image of the patterned scan.
2) Open the filter image that you just built based in the FFT.
To apply the filter to the original image with the pattern, make the patterned original the active image and then choose "Process > FFT > Custom Filter ..."
A dialog box will open with a dropdown menu of all of the
OPEN images available to be used as filters. Choose your filter image and the original will have the FFT performed, filtered and the filtered IFFT (reconstructed filtered image) will be spit out.
Pat yourself on the back and crack open a cold one!
If there is still pattern in the filtered image, it usually means you did not filter out (paint over) all of the little beeps and boops that you needed to. Sharp-edged patterns mean that there is a lot of high-frequency content that needs to be suppressed.
The FFT power spectrum image is usually pretty low contrast - so, in Photoshop, before you go about painting your black dots and lines in your filter layer, consider applying an adjustment layer to the FFT to increase contrast - you will find little white dots and stars out near the edges of the image that were hiding previously. Make sure you get those guys too.
Have fun!
kirk
Here is a similar exercise I did years ago (on the Neat Image forum) addressing a problem identical to the OPs here, but where someone was misusing Neat Image noise reduction software to try to cancel out the pattern. I have been egging on the Neat Image guy for a while to add FFT filtering to his plug-in.
