世界を動かす技術を、日本語で。

ディザードQRコード

2026年8月9日原文(andrewt.net)

概要

  • QRコード はデータを格納するグリッド構造
  • データ部分を加工することで 画像合成 が可能
  • ディザリング で中間調表現やノイズ軽減
  • エラー拡散法 でデータ部ノイズを周囲に分散
  • 美観と可読性のバランス が重要

QRコードの基本

  • QRコード は少量のデータを格納するための グリッド状の2次元バーコード
  • ファンクションパターン (太い枠や角の模様)と データモジュール (その他の部分)に分割
    • ファンクションパターンは スキャン時の位置検出
    • データモジュールは 実際のデータ やヘッダー情報などを格納
  • データモジュールは 多少の加工が許容 され、ブランドロゴや画像を挿入するカスタマイズも可能
  • 加工しすぎると 読み取り精度が低下、だがある程度までは問題なくスキャン可能

QRコードへの画像合成

  • データモジュールの ピクセルを縮小 し、空いたスペースに画像を配置
  • 各ピクセルを 3×3グリッド に分割し、中央にデータ、周囲8つに画像情報を割り当てる手法
  • 結果として 低解像度・1ビット画像 と「塩コショウノイズ」が混在した見た目になる

ディザリングとは

  • 画像を 低色数化 する際、単純な二値化(しきい値処理)ではなく、 中間調表現 のために「市松模様」状のパターンを活用
  • Bayerフィルタ などを用いることで、細部を保ちながら全体にディザ効果を適用

エラー拡散(Error Diffusion)

  • Floyd-Steinberg法 などの手法により、ピクセルごとの誤差を 未処理の隣接ピクセルに分散
    • 例えば70%明度のピクセルを白にすると+30%の誤差が生じ、これを周囲に分配
  • 全体の明度が 平均的に正確 になり、パターンの不規則性でノイズも目立ちにくくなる

QRコード画像へのエラー拡散ディザリング応用

  • データモジュール由来の ランダムノイズ が画像全体に混ざる問題
  • 2段階のエラー拡散 を実施
    • 1回目:データモジュールの位置に必須色を割り当て、その誤差を周囲8ピクセルに拡散
      • 必須色が背景と大きく異なる場合、最大95%の誤差発生もあり得る
      • それでも 誤差を拡散すれば画像がより自然 に見える
    • 2回目:画像全体に通常のエラー拡散を適用

さらなる応用と工夫

  • QRコード自体の回転 やエンコーディング設定の変更による見た目の調整
  • エラー訂正機能 を活用し、データモジュールの一部を変更してもスキャン可能
    • ただし、データモジュール由来のノイズ拡散をしっかり行えば、訂正機能を使わなくても十分
    • 必要以上に訂正機能を使うと スキャン性能が大きく低下

実用上の注意点

  • 大きな画面やポスター用途 なら問題なく利用可能
  • 紙媒体や悪条件下 では、可読性・冗長性・誤り訂正の重要性が増す
  • 美観とスキャン性能のトレードオフ を意識
    • PC画面でスキャンできても、他人の古いスマホや印刷物では読めない可能性
  • マージン(余白) が必須
    • 余白がないとスキャン精度が大幅に低下
    • 通常は白背景だが、反転QRコードでは黒背景が必要
    • ブラウザの画像拡大時のぼかし処理(CSSで無効化推奨)

まとめ

  • QRコードのデータ部を活用した画像合成 は、ディザリングとエラー拡散によって見た目と可読性の両立が可能
  • エラー訂正・余白・用途 を考慮し、適切なバランスで作成することが重要

Hackerたちの意見

最近の「販売中のDNSレコード」に関する投稿のコメントを見て、偶然これを見つけたんだ。milk.comにアクセスして、オーナーのMastodonをスクロールしてたらね。

彼のデイリーパズル、特に「Ronin」と「Cell Tower」をやってたから、このドメイン名は知ってるよ。

これを色でやったらどうなるか気になったんだけど、どうやらできるみたいだね。

これって、ショーン・コネリーの顔のレナなの?

これも怪しいね。

同じ作者の作品はこちらだよ。

QRコードの中でアニメーションも動かせるんだって!つまり、技術的にはQRコードの中でDoomを動かすこともできるの?

誰かがQRコードでバッドアップルのミームを投稿するのを待ってるんだけど。

この文章のスタイル好きだな。最初の部分はQRコードが何かをすごくわかりやすく説明してるし、約200語でまとめられてる。

色も使えるよね: https://janglingpointer.github.io/Image_To_QR/ これ作った人がredditに記事を書いてるよ: https://www.reddit.com/r/PixelArt/comments/1v52x96/

これ、車の安全機能を思い出させるな。ドライバーがその利点に慣れすぎちゃってる感じ。QRコードはエラーに強く作られてるけど、時間が経つにつれて見た目のためにその強さが削られてきてる。ビジネスでは真ん中にロゴを入れることが多くて、エラー修正の予算が減っちゃうんだよね。これも似たような影響があると思う。

これもめっちゃクールだよ: https://antfu.me/posts/ai-qrcode QRコードとしても有効なディフュージョン画像生成。