フラクタル次元とは
線は 1 次元、面は 2 次元、立体は 3 次元です。フラクタル次元は、この「次元」を整数でない値にも広げたもので、図形や表面がどれだけ入り組んでいるかを表します。たとえば海岸線のように細かく入り組んだ線は、1 次元の線と 2 次元の面の間の値になります(B. B. Mandelbrot は 1967 年の論文で、イギリスの西海岸の次元を約 1.25 と見積もっています)。
写真の明るさを高さとみなすと、画像は山と谷のある「地形」(曲面)になります。なめらかな曲面は 2 次元ですが、細かい凸凹が多いほど空間を埋めるようになり、次元は 3 に近づきます。このツールが「濃淡の粗さ」として測るのは、この曲面の次元(2〜3)です。
フラクタル次元の考え方そのものは、「フラクタル次元の求め方」で詳しく解説しています。
ボックスカウント法の考え方
白と黒に分けた画像(2 値画像)では、次の手順で図形の次元を求めます。これをボックスカウント法と呼びます。
- 画像を 1 辺 画素のマス目(箱)に区切る。
- 図形が少しでもかかっている箱の数 を数える。
- マス目の大きさ を変えながら数え、 と のグラフに直線を当てはめる。
- 直線の傾きを次元 とする。
線なら、箱の 1 辺を半分にすると図形にかかる箱の数は約 2 倍、面なら約 4 倍になり、傾きはそれぞれ 1 と 2 になります。入り組んだ図形では、その間の値になります。このツールの「図形の次元」は、この方法で 0〜2 の値を求めます。白と黒の境目(しきい値)は、明るさの分布から大津の方法で自動的に決め、手で変えることもできます。
差分ボックスカウント法(DBC)の仕組み
写真のような濃淡のある画像では、白黒に分けると情報の多くが失われます。そこで N. Sarkar と B. B. Chaudhuri(1994)は、明るさを高さとみなし、画像を 3 次元の曲面として箱で覆う差分ボックスカウント法(DBC)を考えました。
- 画像(1 辺 画素)を、1 辺 画素のマス目に区切る。
- 明るさの方向にも、高さ の箱を積み重ねる( は明るさの段階数)。マス目を小さくすると、箱も同じ割合で低くなります。
- マス目ごとに、最も明るい画素 と最も暗い画素 の間を覆うのに必要な箱の数を数える。
- 全部のマス目の箱の数を合計して とし、 と の直線の傾きを次元 とする。
なめらかな面では、どのマス目でも明るさの差が小さく、箱の数はマス目の数( を半分にすると 4 倍)とほぼ同じように増えるので になります。細かい凸凹が多いと、マス目を小さくしても明るさの差が小さくならないため箱が多く必要になり、 は 3 に近づきます。
画像の 1 辺がマス目の大きさで割り切れないときは、端の余った部分を使わずに数えます。使った面積が小さい分だけ箱が少なくなるので、このツールでは を面積の比 で換算してから直線を当てはめています。端のマス目を面積で重み付けする Jiang ほか(2022)の改良と同じ考え方です。
もう 1 つの方法:マドグラム法
DBC と並べて表示しているマドグラム法は、T. Gneiting、H. Ševčíková、D. B. Percival(2012)がさまざまな推定方法を比べた論文で扱った方法です。この論文は、1 本の線(時系列)の粗さにはマドグラムを勧め、画像のような 2 次元のデータには、行と列ごとの推定値の中央値をとる方法を提案しています。このツールはそれをマドグラムで使っています。
- 画像の 1 行(または 1 列)を、1 本の折れ線とみなす。
- 1 画素離れた点どうしの明るさの差の平均 と、2 画素離れた点どうしの差の平均 を求める。
- 離れると差がどれだけ大きくなるかから、その線の次元を求める。
- 全部の行と列の次元の中央値に 1 を足して、画像の次元とする。
なめらかな線では、2 画素離れると差がちょうど 2 倍になり、線の次元は 1 になります。でたらめなノイズでは、1 画素離れても 2 画素離れても差が同じなので、線の次元は 2 になります。中央値を使うため、画像の一部に傷やゴミがあっても値が大きくぶれにくいのが特長です。
結果の読み方
- D の値:2 に近いほど、明るさがゆるやかに変わるなめらかな画像です。3 に近いほど、隣り合う画素どうしでも明るさが大きく変わる、ノイズのような画像です。図形の次元では、1 に近いほど線のように細く、2 に近いほど面を埋める図形です。
- ± の値(標準誤差):グラフの点から求めた傾きの、ばらつきの目安です。小さいほど、点が直線によく乗っています。
- R²(決定係数):点が直線にどれだけよく乗っているかを 0〜1 で表します。1 に近いほど、マス目の大きさを変えても同じ割合で箱が増える関係(スケール則)がよく成り立っています。0.98 未満のときは、スケール則が成り立っていない可能性があるので、ツールに注意を表示します。グラフの点を見て、外れている点を当てはめの範囲から外すこともできます。
- 2 つの方法の値の差:DBC とマドグラム法は考え方が違うので、同じ画像でも値が少し違います。差が大きいときは、画像に大きな明るさの段差や、ぼけた部分が多い可能性があります。
画像どうしを比べるときは、同じ方法・同じ設定(解像度・コントラスト正規化・反転)で測った値どうしを比べてください。
実際に測った例
ページ上部のサンプル画像を、ツールの既定の設定で測った値です。サンプルはすべてプログラムで作った合成画像です。
| サンプル画像 | 測り方 | D | R² | もう 1 つの値 |
|---|---|---|---|---|
| 雲のような模様 | 濃淡の粗さ | 2.363 | 0.9985 | マドグラム法 2.465 |
| なめらかな起伏 | 濃淡の粗さ | 2.061 | 0.9983 | マドグラム法 2.138 |
| 海岸線のような図形 | 図形の次元 | 1.826 | 0.9998 | 図形の割合 50.3%(しきい値 0) |
| IFS のシダ | 図形の次元 | 1.738 | 0.9988 | 図形の割合 14.7%(しきい値 0) |
理論上の次元 がわかっている合成画像(fBm 曲面)でも測りました。
| 画像(1024×1024) | 理論値 | DBC | マドグラム法 |
|---|---|---|---|
| 一様なグレー | 2.00 | 2.000 | 2.000 |
| 輝度のグラデーション | 2.00 | 2.033 | 1.999 |
| fBm 曲面(H = 0.8) | 2.20 | 2.103 | 2.160 |
| fBm 曲面(H = 0.65) | 2.35 | 2.185 | 2.255 |
| fBm 曲面(H = 0.5) | 2.50 | 2.276 | 2.350 |
| fBm 曲面(H = 0.35) | 2.65 | 2.376 | 2.439 |
| fBm 曲面(H = 0.2) | 2.80 | 2.460 | 2.521 |
| 一様乱数のノイズ | 3.00 | 2.931 | 3.000 |
- どちらの方法も、画像が粗いほど(H が小さいほど)値が大きくなり、粗さの順番は正しく測れています。
- 粗い画像ほど、どちらも理論値より低めに出ます。fBm 曲面では、DBC は理論値より約 0.10〜0.34、マドグラム法は約 0.04〜0.28低い値になりました。
- DBC が低めに出るのはこのツールの計算の誤りではなく、方法そのものの性質です。Jiang ほか(2022)が 512×512 の fBm 画像で元の DBC を測った値(理論値 2.2・2.5・2.8 に対して 2.112・2.282・2.473)とも、よく一致しています。
- 画像の明るさは 256 段階しかないため、ごく細かい凸凹は表しきれません。合成画像そのものも理想的な fBm を完全には再現できないため、どの方法でも理論値ちょうどにはなりません。
限界と注意点
- 値は低めに出る:上の表のとおり、DBC は理論値より低めに出る傾向があります。値そのものより、同じ条件で測った画像どうしの比較に向いています。
- 設定や撮り方で値が変わる:解像度、コントラスト正規化、ピントのぼけ、画像の圧縮によって値が変わります。たとえば「雲のような模様」をぼかすと、細かい凸凹が消えて値が下がります。
| 「雲のような模様」の処理 | DBC | マドグラム法 |
|---|---|---|
| ぼかさない(元の画像) | 2.363 | 2.465 |
| 3×3 画素の平均でぼかす | 2.233 | 2.110 |
| 5×5 画素の平均でぼかす | 2.165 | 2.056 |
| 9×9 画素の平均でぼかす | 2.090 | 2.025 |
- IFS の画像を測るとき:点を打って描いたフラクタル(IFS の出力など)を「濃淡の粗さ」で測ると、点の濃淡の粗さを測ることになり、図形(アトラクター)そのものの次元とは別の値になります。図形の次元を知りたいときは「図形の次元」で測ってください。シミュレーターの「このフラクタルの次元を測る」ボタンから開くと、自動で「図形の次元」になります。
- 中央の正方形だけを使う:計算には画像の中央の正方形だけを使います。測りたい部分が端にある場合は、あらかじめ切り抜いてから読み込んでください。
よくある質問
スマートフォンで撮った写真でも測れますか?
はい、測れます。JPEG・PNG・WebP の写真をそのまま読み込めます。iPhone の HEIC 形式は、ブラウザによっては読み込めないため、その場合は JPEG に変換するか、スクリーンショットを使ってください。大きな写真は、計算の前に短い辺が 1024 画素(オプションで 512・2048 も選べます)になるよう縮小します。
測るたびに値が変わるのはなぜですか?
同じ画像を同じ設定・同じブラウザで測れば、毎回同じ値になります。計算に乱数は使っていません(ブラウザの種類が違うと、画像を縮小するときの処理の違いで、小数第 3 位あたりが変わることがあります)。値が変わるのは、解像度・コントラスト正規化・反転などの設定や、写真の撮り方(明るさ・ピント・圧縮)が違うときです。比べるときは、設定をそろえて測ってください。
画像はサーバーに保存されますか?
いいえ。読み込んだ画像の処理と計算は、すべてブラウザの中で行います。画像がサーバーへ送信・保存されることはありません。CSV やシェア画像も、お使いの端末に保存されるだけです。
DBC とマドグラム法の値が違うのはなぜですか?
DBC は「箱を数える」方法、マドグラム法は「隣り合う画素の差の大きさ」から求める方法で、考え方が違うためです。合成画像で試すと、マドグラム法のほうが理論値に近い値になりました。ただし、ぼけた画像ではマドグラム法のほうが大きく値が下がります。2 つの値を並べて見ることで、測った値がどのくらい確かかの目安になります。
白黒の図形や線画の次元を測るには?
「測り方」で「図形の次元」を選んでください。画像を白と黒に分けて、図形が写っている箱の数を数えます。白地に黒い図形なら「暗い側」、黒地に白い図形なら「明るい側」を選びます。しきい値は自動で決めますが、オプションで手動にもできます。
参考文献
- N. Sarkar, B. B. Chaudhuri, "An efficient differential box-counting approach to compute fractal dimension of image", *IEEE Transactions on Systems, Man, and Cybernetics* 24 (1994), 115–120.
- T. Gneiting, H. Ševčíková, D. B. Percival, "Estimators of fractal dimension: assessing the roughness of time series and spatial data", *Statistical Science* 27 (2012), 247–277.
- W. Jiang, Y. Liu, J. Wang, R. Li, X. Liu, J. Zhang, "Problems of the grid size selection in differential box-counting (DBC) methods and an improvement strategy", *Entropy* 24 (2022), 977.
- N. Otsu, "A threshold selection method from gray-level histograms", *IEEE Transactions on Systems, Man, and Cybernetics* 9 (1979), 62–66.
- B. B. Mandelbrot, "How long is the coast of Britain? Statistical self-similarity and fractional dimension", *Science* 156 (1967), 636–638.
- K. Falconer, *Fractal Geometry: Mathematical Foundations and Applications*, Wiley(初版 1990).