I'm still not exactly sure how the API calls I was making relate to the Fourier Transform I learned briefly in school; in particular, I'm a little unclear on how the 2D image is processed. It looks like one dimension is processed first, then the other, so you get anisotropic effects.
I love this so much!! Makes me want to see an interactive little app where I can "paint" in the frequency domain on the left and see in realtime the "time domain" (that's just the "original" right? back to good old 0-100 monochrome pixels?)
(and also drag and drop _another_ image so I can paint bits from one frequency domain into another. this is one thing I was sort of trying to get at with the interactive bits in this article https://parametric.press/issue-01/unraveling-the-jpeg/)
I don't understand why "Time woman with a frequency cat" looks the way it is, is that expected, that it doesn't look any different from original? is it because the "frequency cat" we added in was only a small piece..? like we added in only some high freq components...?
The frequency data of the cat is "polluted" with the bitmap of a woman, and vice versa. You're trying to cram two images into one, so there is some data loss. I also optimized for minimal distortion of the picture of a woman, at the expense of reducing the quality of the cat picture, but you could do 50-50.
Ultimately, you're trying to cram 2x pixels into an x-pixel bitmap, so there's no lossless solution. But still, the degree of separation between the images is remarkable.
Bonus content: the deterioration of a "standalone" frequency-domain cat for various JPEG quality settings:
https://vimeo.com/940487310/8a929a5eb5
I had some fun a while back playing with the phase information: https://www.brainonfire.net/blog/2022/04/28/fourier-image-experiments/
I'm still not exactly sure how the API calls I was making relate to the Fourier Transform I learned briefly in school; in particular, I'm a little unclear on how the 2D image is processed. It looks like one dimension is processed first, then the other, so you get anisotropic effects.
I love this so much!! Makes me want to see an interactive little app where I can "paint" in the frequency domain on the left and see in realtime the "time domain" (that's just the "original" right? back to good old 0-100 monochrome pixels?)
(and also drag and drop _another_ image so I can paint bits from one frequency domain into another. this is one thing I was sort of trying to get at with the interactive bits in this article https://parametric.press/issue-01/unraveling-the-jpeg/)
I don't understand why "Time woman with a frequency cat" looks the way it is, is that expected, that it doesn't look any different from original? is it because the "frequency cat" we added in was only a small piece..? like we added in only some high freq components...?
The frequency data of the cat is "polluted" with the bitmap of a woman, and vice versa. You're trying to cram two images into one, so there is some data loss. I also optimized for minimal distortion of the picture of a woman, at the expense of reducing the quality of the cat picture, but you could do 50-50.
Ultimately, you're trying to cram 2x pixels into an x-pixel bitmap, so there's no lossless solution. But still, the degree of separation between the images is remarkable.
Oof, yeah, thanks.