What's an image made of?

There are many correct answers.

But the most fascinating one is: << sines & cosines >>

Read on if you're intrigued👇🧵🪡


Any image can be reconstructed from a series of sinusoidal gratings.

A sinusoidal grating looks like this…


Show thread

It’s called a sinusoidal grating because the grayscale values vary according to the sine function.

If you plot the values along a horizontal line of the grating, you’ll get a plot of a sine function


Show thread

…and different frequencies—these are spatial frequencies, not temporal ones


Show thread

There's one more parameter that defines a sinusoidal grating: the phase. Gratings with a different phase are shifted with respect to each other…


Show thread

Or even better, you can use a function of both x and y to make any grating


Show thread

You can find the parameters of a sinusoidal grating by using the 2D .

The dots shown contain the amplitude and phase of the grating. Their position from the centre gives the frequency, and their orientation represents the orientation of the grating.


Show thread

Now, if you have lots of gratings superimposed on each other, the gives you a pair of dots for each of the components


Show thread

Now, here’s the “magical” part of theory.

Any image is made up of lots of sinusoidal gratings. So, the 2D Fourier Transform of an image gives you thousands of pairs of dots, and each pair represent a sinusoidal grating.


Show thread

And therefore, you can reconstruct the image by adding all of those sinusoidal gratings together.

The more gratings you add, the closer the result is to the actual image


Show thread

There's a lot more than can fit in a single thread.

If you want to read more detail, and go through the step-by-step writing of the code to decompose & recostruct *any* image, read full article here:



Show thread

So, this thread could serve as my my

I'm Stephen. I used to be a physicist (as you can guess from the thread above) but now I focus on communicating about Python and programming and teaching coding

You can expect more varied content from me, all related to in , from science-y stuff like this, to fun animations using the `turtle` module (no not those boring ones!) and general Python for those learning to code at beginner and intermediate levels

Show thread

You'll find me easily on Twitter too if you're on there as well. That's a bigger account and get's a lot of interesting conversations going with others in the world

You can see the sort of things I'm interested it there (until this timeline fills up a bit): twitter.com/s_gruppetta_ct

· · 0 · 0 · 1
Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.