one signal, four bands · each lane below the signal is what that band keeps
hovertap for the band-pass
three octaves of its scale space
Thomas Stephan
images · signals · the transforms between domains
At night I see transformations. Some of them are still useful in the morning.
I like the transforms that carry a picture out of the domain it was measured in and into one where the thing you were looking for is finally obvious, where it is a single bright coefficient instead of ten thousand faint ones. A straight line in an image is hard to find. A point in Hough space is not. A blur is a hard operation to undo. A division in the Fourier domain is not. That last one is a lie, and I take it back in The Illusion of Exact Deconvolution. Fourier, wavelet, Radon, Hough: each one moves a hard question into a space where it is easy, and then hands the answer back to where it came from.
Every imaging system convolves, whether you asked it to or not: a lens, a sensor, a hand that moved. The Fourier transform is nothing more mysterious than the eigenbasis of that operator. Change coordinates and the smearing turns into a multiplication. None of this is a trick to memorise. It is what you get when you stop describing an operator and start diagonalising it.
The rest is making it survive contact with code. Rust now, C++ before it. I want the type of a value to carry what the value means: which grid, which units, which curve it has already been through. Then a mismatch is a compile error and not an image that looks a bit off.
published
Hardening computer vision with a proper type system
Three classic bugs that have each cost the field twenty years. None of them is a logic bug. Every one is a type bug: correct functions exchanging values whose meaning was never written down.
The Blue Face Bug
Your camera says blue-green-red. Your model says red-green-blue. The bytes in between say nothing at all.
128 Is Not the Middle
Average a black pixel and a white pixel. Your resize code says 128. The value that actually looks halfway is nearer 188.
Climbing the Pyramid
Sizes that stop matching, two “scales” that are not the same thing, and coordinates that quietly drift half a pixel per step.
coming
At night I see transformations
The transform series. No dates: each one goes live when it is finished.
Fourier Is the Eigenbasis of Convolution
Convolution has eigenfunctions, and they turn out to be the complex exponentials. Every property of the transform that looks like a coincidence follows from that one fact.
in writingThe Illusion of Exact Deconvolution
Divide by the transfer function and the blur comes out. So does the noise, without bound, wherever the transfer function is small. Why the clean inverse exists only on paper, and what you reach for instead.
planned