Post APJDXrCMGdxMbTm7Xs by s_gruppetta@qoto.org
(DIR) More posts by s_gruppetta@qoto.org
(DIR) Post #APJDXlUvShFAvKPrea by s_gruppetta@qoto.org
2022-11-05T21:36:29Z
0 likes, 0 repeats
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👇🧵🪡#python #images #fourier/1
(DIR) Post #APJDXlyhfz3yPgLe4G by s_gruppetta@qoto.org
2022-11-05T21:37:55Z
0 likes, 0 repeats
Any image can be reconstructed from a series of sinusoidal gratings.A sinusoidal grating looks like this…#sinusoidal #grating/2
(DIR) Post #APJDXmPI58KXk8msVc by s_gruppetta@qoto.org
2022-11-05T21:38:54Z
0 likes, 0 repeats
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/3
(DIR) Post #APJDXmqaReAH6nYg3U by s_gruppetta@qoto.org
2022-11-05T21:39:27Z
0 likes, 0 repeats
Sinusoidal gratings can have different orientations…/4
(DIR) Post #APJDXnGos79GQ9pcwa by s_gruppetta@qoto.org
2022-11-05T21:39:59Z
0 likes, 0 repeats
…different amplitudes…
(DIR) Post #APJDXnipBzY9p0vzay by s_gruppetta@qoto.org
2022-11-05T21:40:52Z
0 likes, 0 repeats
…and different frequencies—these are spatial frequencies, not temporal ones/6
(DIR) Post #APJDXo6Dn0GUzZsg40 by s_gruppetta@qoto.org
2022-11-05T21:41:19Z
0 likes, 0 repeats
There's one more parameter that defines a sinusoidal grating: the phase. Gratings with a different phase are shifted with respect to each other…/7
(DIR) Post #APJDXoXAApoeL8UC3c by s_gruppetta@qoto.org
2022-11-05T21:42:37Z
0 likes, 0 repeats
You can create a 2D sinusoidal grating in #Python using #NumPy and display it using #matplotlib /8
(DIR) Post #APJDXozAUiDXjzaYi0 by s_gruppetta@qoto.org
2022-11-05T21:43:21Z
0 likes, 0 repeats
Or even better, you can use a function of both x and y to make any grating/9
(DIR) Post #APJDXpTefMbVGXquEC by s_gruppetta@qoto.org
2022-11-05T21:44:00Z
0 likes, 0 repeats
You can find the parameters of a sinusoidal grating by using the 2D #FourierTransform.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./10
(DIR) Post #APJDXpxQseQIktmgds by s_gruppetta@qoto.org
2022-11-05T21:44:21Z
0 likes, 0 repeats
Now, if you have lots of gratings superimposed on each other, the #FourierTransform gives you a pair of dots for each of the components/11
(DIR) Post #APJDXqKTUyr3uMZ5Ye by s_gruppetta@qoto.org
2022-11-05T21:45:07Z
0 likes, 0 repeats
Now, here’s the “magical” part of #Fourier 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./12
(DIR) Post #APJDXqnBmDp7LQ01JY by s_gruppetta@qoto.org
2022-11-05T21:45:35Z
0 likes, 0 repeats
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/13
(DIR) Post #APJDXrCMGdxMbTm7Xs by s_gruppetta@qoto.org
2022-11-05T21:46:06Z
0 likes, 0 repeats
Here's another example/14
(DIR) Post #APJDXrdIeTVVx2NdXU by s_gruppetta@qoto.org
2022-11-05T21:46:35Z
0 likes, 0 repeats
and another one…
(DIR) Post #APJDXs5IyLuPLtU0Bs by s_gruppetta@qoto.org
2022-11-05T21:47:01Z
0 likes, 0 repeats
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: #coding #2dfourierimages #2dfouriertransform #fourier /16https://thepythoncodingbook.com/2021/08/30/2d-fourier-transform-in-python-and-fourier-synthesis-of-images/
(DIR) Post #APJDXsTPWjBuYelFlQ by s_gruppetta@qoto.org
2022-11-05T21:48:08Z
0 likes, 0 repeats
So, this thread could serve as my my #introductionI'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 codingYou can expect more varied content from me, all related to #programming in #Python, 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
(DIR) Post #APJDXszJc6iC9bgjUe by s_gruppetta@qoto.org
2022-11-05T21:49:10Z
0 likes, 0 repeats
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 #Python worldYou can see the sort of things I'm interested it there (until this timeline fills up a bit): https://twitter.com/s_gruppetta_ct