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]

