モザイクの粗さで、文字はどこまで読めてしまうか
公開日 ・写真とプライバシー
写真に写った名前や住所を隠すとき、手軽なのがモザイクです。ところが、粗さが足りないモザイクは、少し離れて見たり、画像を縮小したりすると、元の文字が読めてしまうことがあります。
モザイクは、画像を小さな正方形(ブロック)に区切り、ブロックの中を平均の色 1 色で塗りつぶす処理です。ブロックが小さいほど元の画像に近く、大きいほど元の形が分からなくなります。この記事では、ブロックの大きさを変えながら、どこまで文字が読めるかを試しました。
試した方法
- 元の画像: 架空の名前・住所・電話番号(実在しない「000」で始まる番号)を、横 1,600 ピクセルの白い画像に黒い文字で書きました。文字の大きさは、名前と電話番号が 96 ピクセル、住所が 64 ピクセルです。伝票やスクリーンショットを撮った写真で、文字が大きめに写っている状態を想定しています。
- モザイクとぼかし: Web Mask Studio と同じ計算で加工しました。Web Mask Studio の「強さ」を n にすると、ブロックの大きさは「画像の長辺 × n ÷ 400」ピクセルになります。横 1,600 ピクセルの画像なら、強さ 1 で 4 ピクセル、強さ 10 で 40 ピクセルです。ぼかしの半径は、同じ強さのブロックの半分です。
- 見え方: 原寸の画像と、4 分の 1 に縮小した画像(スマートフォンの画面で小さく表示したときを想定)の両方で確かめました。
この記事に載せている画像は、ページの幅に合わせて横 800 ピクセル(原寸の半分)に縮めています。お使いの画面によってはさらに小さく表示されるため、「原寸では読めない」とした画像も、この記事の上では読めてしまうことがあります。それ自体が、縮小すると読めるようになることの例です。
元の画像はこれです。

モザイクの強さを変えた結果

強さ 2(ブロック 8 ピクセル): 文字の輪郭がぎざぎざになるだけで、すべてそのまま読めます。

強さ 3(ブロック 12 ピクセル): 名前と電話番号はまだ読めます。住所も、漢字の形がかなり残っています。

強さ 4(ブロック 16 ピクセル): 原寸では、文字の形が崩れて読みにくくなります。ただし「0」や「1」のような単純な形の数字は見分けられ、何文字あるか、どこで区切れているかも分かります。

強さ 6(ブロック 24 ピクセル): 原寸では文字の形は分かりません。分かるのは、行の長さと、電話番号が 3 つに区切れていることくらいです。

強さ 8(ブロック 32 ピクセル): 名前・電話番号の 1 文字が、縦 3 ブロックほどになります。
縮小すると読めてしまう
同じ強さ 4 のモザイクを、4 分の 1 に縮小したのが次の画像です。

原寸では読みにくかった名前と電話番号が、縮小するとはっきり読めるようになりました。強さ 6・強さ 8 を縮小したものも並べます。


左が強さ 6、右が強さ 8 を、それぞれ 4 分の 1 に縮小したもの。
強さ 6 でも、縮小すると、書いてある文字を知っていれば読めてしまうくらいに形が残っています。強さ 8 まで上げると、縮小しても文字を見分けるのは難しくなりました。
このように読めるようになるのは、縮小すると、ブロックの境目のぎざぎざが目立たなくなり、ブロックの濃淡の並びだけが残ります。その濃淡の並びが、元の文字の形とよく似ているためです。
離れて見る、目を細める、といったことでも同じことが起きます。スマートフォンの画面で画像を小さく表示したときも同じです。
知らない文字でも読めるか(ブラインド判定)
上の画像は、何が書いてあるかを知っている状態で見ているので、「読めた」と感じやすくなります。そこで、プログラムに名前と電話番号を乱数で選ばせ、答えを見ないまま画像を読み、あとで答え合わせをしました。電話番号は、実在する番号と偶然一致しないよう、実在しない「000」で始め、残りの 8 桁を 0〜9 から乱数で選びました。8 桁を当て推量で全部当てることはまずありません。名前は 20 人分の候補から選んだため、候補を知っている分だけ読みやすく、名前の判定は参考程度です。
| 加工 | 原寸で読んだ結果 | 縮小して読んだ結果 | 答え |
|---|---|---|---|
| モザイク 強さ 4(16 ピクセル) | 名字の 2 文字と最後の「子」は読めた。番号は 8 桁中 6 桁が正解 | 名前・番号とも全部正解 | 中村 恵子/000-0240-6670 |
| モザイク 強さ 6(24 ピクセル) | 読めない(名前が 2 文字と 1 文字らしいことだけ分かった) | 名前は正解(候補を知っていたため)。番号は 8 桁中 4 桁が正解 | 井上 隆/000-2607-6713 |
| ぼかし 強さ 8(半径 16 ピクセル) | 名前は読めない。番号は 8 桁中 6 桁が正解 | 名前・番号とも全部正解 | 加藤 春香/000-2657-8788 |



左から、モザイク 強さ 4・モザイク 強さ 6・ぼかし 強さ 8 を、それぞれ 4 分の 1 に縮小したもの。
強さ 4 のモザイクは、答えを知らなくても、縮小すれば 8 桁の乱数を全部読めてしまいました。強さ 6 でも、縮小すると半分の桁が当たりました。
ぼかしはモザイクより読まれやすい
ぼかしも同じように試しました。


ぼかしの強さ 4 では、文字がにじむだけで全部読めます。強さ 8 にすると、原寸では名前が読めなくなりますが、太い数字はまだ読めます。ブラインド判定でも、強さ 8 のぼかしの電話番号は、原寸で 8 桁中 6 桁、縮小すると全部読めました。
ぼかしは、周りの色を少しずつ混ぜる処理なので、文字の線の位置の情報がなめらかに残ります。モザイクのようにブロックごとに色を 1 つにまとめるわけではないため、同じくらいの強さでも元の形が残りやすいのです。
結果のまとめ
| 加工 | 原寸 | 縮小 |
|---|---|---|
| モザイク 強さ 2(ブロックが文字の高さの約 12 分の 1) | 読める | 読める |
| モザイク 強さ 3(約 8 分の 1) | 読める | 読める |
| モザイク 強さ 4(約 6 分の 1) | 一部読める | 読める |
| モザイク 強さ 6(約 4 分の 1) | 読めない | 一部読める |
| モザイク 強さ 8(約 3 分の 1) | 読めない | ほぼ読めない |
| ぼかし 強さ 4 | 読める | 読める |
| ぼかし 強さ 8 | 数字は読める | 読める |
※ 文字の高さ 96 ピクセル(名前・電話番号)に対する割合。住所(64 ピクセル)は、同じ強さでも文字に対してブロックが大きくなるため、名前や電話番号より早く読めなくなりました。
この試し方では、モザイクのブロックが文字の高さの 4 分の 1 くらいまでは、縮小すると読めてしまうことがありました。3 分の 1 まで大きくすると、縮小してもほぼ読めなくなりましたが、これも「読めなかった人がいた」というだけで、安全といえる線ではありません。ブロックの大きさは画像の大きさで決まるので、同じ「強さ」でも、大きな写真に小さく写った文字ほど、文字に対するブロックが大きくなって読みにくくなり、逆に画面いっぱいに大きく写った文字ほど読まれやすくなります。
確実に隠すには
- いちばん確実なのは、黒塗り(または白塗り)で、元の色の情報を残さないことです。Web Mask Studio でも、文字や番号には黒塗りをおすすめしています。
- モザイクを使う場合は、ブロックが文字の高さより大きくなるくらいまで強くし、隠したい範囲より少し広くかけます。
- ぼかしは、文字を隠す目的には向きません。
- かけたあとは、画像を縮小して(スマートフォンで表示して)読めないか確かめましょう。
Web Mask Studio では、黒塗り・モザイク・ぼかしを選べます。画像はサーバーに送らず、ブラウザの中で処理します。安全な隠し方は「モザイクは安全?文字が復元される理由と安全な隠し方」でもくわしく説明しています。
出典
関連するツール
ほかの記事
- 輸送密度が高い路線トップ20
全国の鉄道の線区・区間を2023年度の輸送密度(1日あたりの平均の乗客数)が高い順に並べ、上位20の顔ぶれを調べました。山手線は1日約94万人で、最も少ない区間の約4万7千倍でした。
・鉄道のデータ - JR北海道の線区別の収支(宗谷線・石北線・根室線などの営業係数)
JR北海道が公表している2023年度の線区別の収支から、宗谷線・石北線・根室線・釧網線などの営業収益・営業費用・営業係数を比べ、輸送密度との関係を調べました。
・鉄道のデータ - 地下鉄の営業係数を比べる(東京メトロ・都営・大阪メトロと市営地下鉄)
国土交通省の鉄道統計年報(2023年度)から、地下鉄を運営する10事業者の鉄道事業の営業係数・営業損益・投資の負担を比べました。黒字の事業者と赤字の事業者で何が違うのかを考えます。
・鉄道のデータ