Live data from Hacker News

Dithered QR Codes

andrewt.net

31–40 of 44 posts

Re: Dithered QR Codes

#31
post #24

Earlier quoted context omitted.

A few weeks ago I saw the first QR code I've personally witnessed that I'm pretty sure is completely unscannable. The company logo stretched well out of the center block. It was on the back of a semi in the Chicago area. I didn't get the greatest shot of it on my phone (as a passenger), because it was driving away as I tried, so it wasn't quite proof it couldn't scan, but I'm pretty sure it ate more than 100% of the…

Doesn't everyone QA their QR codes? I thought it would be as obvious as making sure you got the right address and/or phone number on an ad before distributing it.

You'd think. My local authority is reorganising refuse collection and did a mailshot to let everyone know the new collection rota. Then they did another because the dates on the first one were wrong. The incompetence is staggering.

Re: Dithered QR Codes

#33
Russ Cox’s QArt Codes[0] modifies how the URL is encoded to embed an image while keeping the QR code fully valid, without relying on error correction.

[0] https://research.swtch.com/qart

Related QArt discussions on HN: [1] https://news.ycombinator.com/item?id=15213044 (2017-09-10, 61 points, 6 comments) [2] https://news.ycombinator.com/item?id=3836935 (2012-04-13, 56 points, 9 comments) [3] https://news.ycombinator.com/item?id=8549772 (2014-11-03, 56 points, 4 comments)

Re: Dithered QR Codes

#34
post #28

I think the first time I saw this was the Stable Diffusion controlnet that did the trick. Definitely an entertaining trick https://latentcat.com/en/blog/qrcode-controlnet

The approach in the article using dithering is in some sense more elegant and mathematically clever. But the level of visual representation from control nets/SD is really compelling.

Re: Dithered QR Codes

#36

I'm not impressed. the whole technique hinges on qr scanners reading only middle point of the squares The moment you encounter developer that thought "for redundancy let's sample the whole square" (which is a very natural thought) - it breaks I kinda expected working the limits of error correction, honestly. Not this blunt circumvention "because it works on my machine"

The specification of qr codes says you should look only at the centres, iirc.

Re: Dithered QR Codes

#37
post #11

You can also run animations in QR codes: https://cgv.cs.nthu.edu.tw/Projects/Recreational_Graphics/Ha... So, technically, you can run Doom inside a QR code?

I'm now waiting for someone to post the Bad Apple meme but all in QR codes

it's been done a couple of times :)

Here's my version that still keeps the full squares: https://youtube.com/watch?v=qQkWjzqMbuA

Re: Dithered QR Codes

#38
post #17

This reminds me of car safety features, how drivers have become more complacent to offset the benefits. QR codes were made to be robust in the face of errors, but over time this has been eaten into for aesthetic purposes. Businesses commonly put a logo in the center, eating up some error correction budget. This likely has a similar effect.

I always find it funny when companies don't put any attempt to shorten the URL, filling it with plaintext url parameters, resulting in huge QR codes that can barely be scanned due to the density.

Re: Dithered QR Codes

#40

I'm not impressed. the whole technique hinges on qr scanners reading only middle point of the squares The moment you encounter developer that thought "for redundancy let's sample the whole square" (which is a very natural thought) - it breaks I kinda expected working the limits of error correction, honestly. Not this blunt circumvention "because it works on my machine"

I think sampling "the whole square" might actually not be that good for decoding even standard QR codes as aliasing at the edges of each code module ("pixel" of the code) in a camera image would actually make the distincion between 1s and 0s more difficult.

Your argument still partially applies though, as introducing new unrelated colors at the module edges could also lead to aliasing effects when the code is too small for example.

Post reply on HN