Login  Register

Re: Antwort: Re: FFT averaging

Posted by Gary Sellani on Apr 23, 2010; 3:29pm
URL: http://imagej.273.s1.nabble.com/FFT-averaging-tp3688496p3688504.html

Yes seeing as in "poor seeing."

I am familiar with registax, but it is quite buggy. I will check out Giotto. And of course I will try the power spectrum measurement suggestions.


-----Original Message-----
From:         Michael Schmid <[hidden email]>
Date:         Fri, 23 Apr 2010 14:27:48
To: <[hidden email]>
Subject: Re: Antwort: Re: FFT averaging

Hi Gary,

ok, as I understand it now, you are talking about what astronomers  
call "seeing".
   http://en.wikipedia.org/wiki/Astronomical_seeing
There are several effects related to it - image shift and distortion  
(most noticeable if the lens is smaller than the convection cell  
size) and blurring.
Distortion can be handled by some registration plug-ins like(b)UnwarpJ.

Finding sharpness:
You can either get the power spectrum (from the FFT options; don't  
take the displayed image of an FFT which has arbitrary log scaling)  
and either measure the mean in a ROI or multiply by some mask  
function of your choice and then determine the mean.
If I remember well, the description of the Registax program has a  
note on how to select that frequency range.
Another way to determine sharpness is simply running a high-pass  
filter (e.g., the one from http://imagejdocu.tudor.lu/doku.php?
id=plugin:filter:highpass_filter:start ), maybe after some noise  
suppression, and then determine the standard deviation.

I think that programs like Giotto and Registax use several criteria  
to find the best images, including sharpness and agreement with the  
average of the best one - have a look at their web pages and manuals.


[ @Joachim:  When I wrote in my previous post "square root of the  
power spectrum" i meant both operations, power spectrum and square  
root, as being nonlinear. You may consider the power spectrum worse  
than the square root, ok, but any nonlinear operation is sufficient  
to make a difference between averaging before and after the operation ]

Michael
________________________________________________________________

On 23 Apr 2010, at 11:37, Gary Sellani wrote:


> Ah, the square root jogs my memory, and of course all bets are off  
> when you perform nonlinear functions. I really need to reread this  
> stuff.
>
> The thermal distortion is the time variant warping you see when  
> using a telescope in the daylight looking over land. A fluttering  
> in the low Hertz (say 10Hz). A camera at a reasonable shutter speed  
> (say 1/125 second) with multiple exposures records many images of  
> the same target with different warping as the live image flutters.
>
> It seems like there should be a way to combine these images to get  
> a more accurate image, that is the unwarped image.
>
> Now if the is not the case, I guess second best would be a motion  
> flow scheme where the frame with the least motion would be picked.  
> I essentially do this now by hand by picking the sharpest image.
>
> Failing those choices, is there a way to have imagej quantify the  
> sharpness of an image, that is a measure of the highest frequency  
> component in the FFT?
>
>
>
> -----Original Message-----
> From:         Michael Schmid <[hidden email]>
> Date:         Fri, 23 Apr 2010 11:19:27
> To: <[hidden email]>
> Subject: Re: FFT averaging
>
> Hi Gary,
>
> according to the Wikipedia site, a periodogram plots the square root
> of the power spectrum, not the real and imaginary values. So it is a
> nonlinear operation, and there is a difference between averaging
> before and after the 'periodgram' operation.
>
> Thermal distortion - I am not sure that I understand you correctly.
> Do you have thermal drift of the image, and you want to register the
> images and then average over them? In that case, I'd use one of the
> image registration plugins. Registration via the Fourier domain works
> best in case of a uniform background (such as images of planets with
> a black background in astronomy; the program Registax is designed for
> this and uses the Fourier transform for registration). Otherwise you
> have to get rid of edge effects; a smooth window function will be
> helpful, but not full solve the problem.
>
> Michael
> ________________________________________________________________
>
> On 23 Apr 2010, at 05:31, gary wrote:
>
>
>> Ok. Thanks to both of you.
>>
>> I guess I have to dust off my Oppenhein and Schafer. Still I have
>> to wonder why periodograms are averaged in the frequency domain if
>> the time domain would work as well.
>>
>> What I was wondering is would stacking FFTs of images of one target
>> that contain thermal distortion would yield a sharper image, but if
>> the operation is linear in either domain, then this is a dead end
>> to explore. I know that stacking where parts of the image have
>> wiggled will just create a blur at those spots.
>>
>> Incidentally, I had some issues getting imagej working on my
>> windows 7 64 bit machine. It worked fine under X64. No big deal
>> since I have a few linux boxes at my disposal and it is trivial to
>> run imagej under linux. [The are not many multiplatform programs
>> where linux is the easiest port!] I suspect a permission problem
>> with windows 7 since it bombed when trying to write the
>> configuration file.
>>
>> On 4/22/2010 8:10 PM, Robert Dougherty wrote:
>>
>>> Gary,
>>>
>>> I agree with Bob (the other Bob), as long as what you want to
>>> average is the original images on the one hand and the complex FFT
>>> (or the FHT) on the other hand.  Averaging and transforming are
>>> both linear operations, so it does not matter what order you do
>>> them in: average(transform(images)) = transform(averages
>>> (images)).  There are types of processing in which you want to
>>> average the power spectra of the various images. (At least there
>>> are times you want to do this in regular signal processing of a
>>> Short Time Fourier Transform.  I'm not sure when it applies in
>>> image processing.)  Squaring to get the power spectra levels is a
>>> nonlinear operation, so it would not work to average the images
>>> first in this case.
>>>
>>> Bob D.
>>>
>>> On Apr 22, 2010, at 4:50 PM, Gary Sellani wrote:
>>>
>>>
>>>> Are you positive? This wouldn't work in the one dimensional case.
>>>> -----Original Message-----
>>>> From:         Bob<[hidden email]>
>>>> Date:         Thu, 22 Apr 2010 17:21:41
>>>> To:<[hidden email]>
>>>> Subject: Re: FFT averaging
>>>>
>>>> Average the images first, then do the FFT.  Yes, you will get the
>>>> same
>>>> result, regardless of the order of the two operations.
>>>>
>>>>
>>>> --------------------------------------------------
>>>> From: "gary"<[hidden email]>
>>>> Sent: Thursday, April 22, 2010 4:53 PM
>>>> To:<[hidden email]>
>>>> Subject: FFT averaging
>>>>
>>>>
>>>>> I did a search on the list archive and fft yielded nothing,
>>>>> something I
>>>>> seriously doubt is the case. I used
>>>>> https://list.nih.gov/cgi-bin/wa.exe
>>>>>
>>>>> In any event, I can use Imagej to take the FFT of an image
>>>>> without issue.
>>>>> Both the "FFT window" and "complex FFT" work. But what I'd like
>>>>> to do is
>>>>> to average a few FFTs of some images, then take the inverse of  
>>>>> that
>>>>> result.
>>>>>
>>>>> You can put the "FFT Window" images into a stack, but it just
>>>>> saves the 2D
>>>>> magitude, so when you average the slices, the result cannot be
>>>>> put through
>>>>> the inverse FFT.
>>>>>
>>>>> Using the complex FFT, I cam create a stack of real and a stack of
>>>>> imaginary, average each stack individually, but then the inverse
>>>>> FFT
>>>>> doesn't recognize it as a complex image.
>>>>>
>>>>>
>>>
>>> Robert Dougherty, Ph.D.
>>> President, OptiNav, Inc.
>>> 4176 148th Ave. NE
>>> Redmond, WA 98052
>>> (425)891-4883
>>> FAX (425)467-1119
>>> www.optinav.com
>>> [hidden email]
>>>