All of this would be nothing more than a curio if it was not for the providential organization of the spectral domain. As it goes with points in the spatial counterpart, the placement of coefficients matter and a great many signal processing techniques which emerged in the late nineteenth and twentieth centuries owe their operations to the felicitous placement of coefficients.
For us, for now, the spectral domain is just another drawing surface. How we draw on it will differ from our accustomed wonts – instead of marking the spatial domain, we set coefficients, which, in the synthesis transform, mutate into waveforms. These waveforms have no locality, but extend out to the limits of space and any local qualities of color or luminosity arise primarily from how waves might build upon each other here, but destroy each other there, which – if we aptly “tune” each and every wave – will converge upon something like cheese and antipasto.
Made with care, these images can be enchantingly beautiful. But the manner of drawing them will run counter to our common sense, that practical-minded veil which oft-times stops us just one step shy of beauty. We will need to proceed with care. Wear a good pair of shoes, have a trusty dog, a true compass, and – above all – a map.
The G'MIC pipeline:
gmic whatever_picture_you_like.png -fft
runs a Discrete Fourier Analysis on >whatever_picture_you_like.png. FFT is an acronym for the Fast Fourier Transform. It and its sibling, the Inverse Fast Fourier Transform (-ifft) implement the Discrete Fourier Analysis and Synthesis processes.
Here's what we get when we run the -fft analyzer over our cheese and antipasto:
Cheese and antipasto in the spectral domain, coefficient real components |
Cheese and antipasto in the spectral domain, coefficient imaginary components |
Well, ehm. That's exciting, perhaps, isn't it?
Ah, it is good that a nice lot of you has gone glassy-eyed and cleared the hall. Space to breathe again, and I don't have to shout up to God's Country, because the galleries – yes, indeed, all of them – are empty and the dress circle has gone off to dress, I suppose. Just you and me, pal – you in the cheap seats too near the orchestra. Don't nod off on me, now.
Truth be told, I did more than run -fft by itself – which would have been even more of a crashing bore – in all I did:
$ gmic -input cheese_antipasto.png -fft -abs -add 1 -log -normalize 0,255 -output[-2] spec-real.png -output[-1] spec-imag.png
This because the dynamic range of spectral coefficients for this particular morsel of cheese is on the order of 1 × 1012. So, to see anything at all, the data were forced positive (-abs), logarithmically compressed and normalized (-add 1 -log -normalize 0,255)i.
The Spectral Course | Complex Number Fields |
iG'MIC's -display_fft does all of this in one fell swoop and centers the most interesting part of the spectral domain. However, this is how -fft actually organizes the spectral domain, with the origin in the top left, and some aspects of the organization of that domain are clearer in this native setting, as we will see presently.