Hi, I'm one of the authors of this tool, happy to answer any questions.
It's basically a little image processing algorithm for restoring rasterized vector art that's been degraded by various forms of abuse (noise, JPEG, print & scan), packaged up in a simple single-page application (sSPA? ;)
There's also a photo mode for de-blocking heavily JPEGed photos.
I'm the other developer. There is actually some pretty cool math behind this:
The underlying algorithm has not been published. At its core is a color median filter, a block-L1-minimizing generalization of the well-known scalar median filter. Applying such a filter to an image rounds out corners and destroys fine features, so a separate recovery step is needed. Filtered pixels that differ significantly from their original values are iteratively replaced with the distance-minimizing convex combination of neighboring filtered pixels, digging out corners and other destroyed features without re-introducing noise.
Cool, polished website. But if it does it 100% in the browser, then I expect to see the result in the browser. Maybe a [1] before/after slider would be a good addition.
Just click the "View" button on each result and you get a full featured viewer with pan/zoom, quick toggling from before/after, and even a heat map showing where there are big differences between the two.
4 comments
[ 2.7 ms ] story [ 21.4 ms ] threadIt's basically a little image processing algorithm for restoring rasterized vector art that's been degraded by various forms of abuse (noise, JPEG, print & scan), packaged up in a simple single-page application (sSPA? ;)
There's also a photo mode for de-blocking heavily JPEGed photos.
The underlying algorithm has not been published. At its core is a color median filter, a block-L1-minimizing generalization of the well-known scalar median filter. Applying such a filter to an image rounds out corners and destroys fine features, so a separate recovery step is needed. Filtered pixels that differ significantly from their original values are iteratively replaced with the distance-minimizing convex combination of neighboring filtered pixels, digging out corners and other destroyed features without re-introducing noise.
[1] https://codepen.io/nosurprisethere/pen/xrXjYV