There seems to be quite a lot of uses, but what I'm most interested in
is cleaning up images.

Basically, the FFT image represents frequencies in the image instead
of colours, so you can say black out the right side of the image to
remove high frequencies (i.e. noise reduction/blur) or boost parts to
highlight detail.. It's stuff that can be done the normal way, but
using frequency data you can do it in much easier ways and at much
higher quality. Probably much faster too, if it's anything complex.
Eg. if the image has video noise of a certain frequency, it's quite
easy to kill the noise without losing much detail. For enhancing
astronomy images, it's very powerful indeed. Plus I wrote a spline
editor a while back so live editing of the filter curve would rule
hard!

Chris


2009/9/18 Alex Drinkwater <[email protected]>:
> I know it's useful on audio, but, just out of interest, what are the
> practical uses of doing an FFT on image data?
>
> a|x
>
>
>
>
> On 18 Sep 2009, at 09:41, Chris Wood wrote:
>
>>> Good idea! The "butterflies" done by GLSLang, the stages by JavaScript.
>>> Maybe it's possible to do the reordering (bit-reversed addressing) in a
>>> filter, too.
>>
>> The catch here is that you're stuck with core image if you want the
>> nice javascript features - it's similar to GLSL but lacking a lot of
>> the more advanced stuff that might be necessary. If not, it could work
>> out.
>>
>>>> They also seem to need two output channels for each input, which could
>>>> be
>>>> more of an issue.
>>>
>>> Uhm? Maybe you mean the real/imaginary parts? (Though, the input has
>>> them,
>>> too.)
>>> Should be easy: we could abuse the color channels, since the transform
>>> will
>>> always be done separately for individual color components.
>>
>> Yeah, the real/imaginary parts. The problem is that you do the
>> transform on each colour channel separately, so for rgb you need 6
>> channels (12 for the two buffers), which likely means 4 buffers in
>> practice.
>>
>> Possible solution: convert the image from rgb to hsv - the V channel
>> contains most of the interesting data, so we can just process that and
>> save a lot of messing about with extra buffers plus 2/3 of the
>> processing (1 channel instead of 3).
>>
>>> And why not then abuse the color channels (we have 4!) for the swap
>>> buffers,
>>> too?
>>
>> Yep. If we're going down the HSV route and just processing V, we can
>> use the R + G channels for the real + imaginary values. That leaves
>> two channels to spare so perhaps the H and S channels could sit there
>> if it won't harm performance.
>>
>> Good ideas here, keep them coming :)
>>
>> Chris
>>
>>
>>>
>>> Jens
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Quartzcomposer-dev mailing list      ([email protected])
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> http://lists.apple.com/mailman/options/quartzcomposer-dev/psonice%40gmail.com
>>>
>>> This email sent to [email protected]
>>>
>>  _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Quartzcomposer-dev mailing list      ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>>
>> http://lists.apple.com/mailman/options/quartzcomposer-dev/the_voder%40yahoo.co.uk
>>
>> This email sent to [email protected]
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Quartzcomposer-dev mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/quartzcomposer-dev/psonice%40gmail.com
>
> This email sent to [email protected]
>
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to