« プログラマー的デザイン表現(2) | トップページ | ゲームと物理と私 »

2009年5月19日 (火)汝が半数の中心

おはようございます。本日の当番、プログラマのM.L.Kです(LはLargeのLです。Large&Small!)

さて、以前のブログで、減色処理の話を書かせて頂きましたが、今回は、その中で取り上げられていた“メディアンカット法”についてのお話です。

メディアン=中央値”は、ある数字の集まりの傾向を表す代表値”という統計量の一種です。
同じ代表値の仲間として、“平均値”がありますが、こちらは中学校で習うので、より一般的だと思います。中央値は、コイツの仲間です。

平均値はすべての数字を足し合わせて、それを、数字の個数で割ると求められます。
これに対して、全ての数字を小さいものから大きなものへと並べて、ちょうど真ん中に位置する数字を取り出したものを、中央値と呼びます。

例えば、

1、1、2、4、4、7、8、9、9

という9個の数字の集まりでは、真ん中(5番目)にある‘4’が中央値です。
(ちなみに、上の並びの平均値は‘5’になります)

「どうして、中央値なんかがあるの?平均値でいいんじゃないの?」
と思う方もいらっしゃるかもしれません。
この疑問はもっともで、統計分析の現場でも、どちらを使って分析するか、しばしば議論になることがあります。
まあ、その他の分析の事情から、平均値を用いるという結論になりがちではあるのですが…。

一般に、数字の集まりに極端な偏りや、一部の数字に突き抜けて外れたものがある場合には、“中央値”を採用するほうが適当だと言われています。

1、1、1、1、1、1、1、2、9

という並びでは、平均値は‘2’ですが、中央値は‘1’となります。

平たく言うと、統計学的に複雑な分析を必要としない場合、お行儀の悪い数字の並びを扱うなら、中央値を使え、ということですね。

う~ん、前置きが長くなってしまいました。

“メディアンカット法”は、色の分布を“メディアン”、すなわち中央値を境に、バッサバッサと切り分けていく、という減色方法です。

使用するサンプル画像は以下のものです。

2009_0518_01
図1.元画像

例の如く、赤と緑のチャンネルだけのものです。
以前のものよりも若干小さくしました。
以前のブログに掲載されたものを見ると、思いの外大きく見えたので。
最近流行りのエコ意識の高さをアピール、みたいな?

2009_0518_02
図2.色の分布

以前のブログでも掲載しましたが、図1の画像で使われている色の分布を、改めて載せることにします(大切なことなので、2回言います)。
これを見ると、確かに「お行儀の悪い並び」、と言えそうですね(一般的に、画像データは、お行儀が悪いデータが多い)。

メディアンカット法で64色に減色する、というのは、すなわち、64回切り分ける、ということです。
とりあえず、切り分けていく様子を見てみましょう。

2009_0518_03
図3.切り分けていく様子

「ヘンな四角形がポコポコ増えていっているだけで、意味分からん。…オルボワールな予感、つーか、むしろ、アデュー」

待ってぇ!前置きで読むのを止めないでくれた貴方のために、アタシ一生懸命説明するからっ!見捨てないでっ!ポイしないでっ!

図2は画像の縦軸を緑チャンネル横軸を赤チャンネルとして分布を表したものです。
切り分けは、各チャンネルで分布の幅が長い(最小値と最大値の差が大きい)軸を選んで、その中央値で分ける、という作業になります。
分かりやすいように、2回目の切り分けを始めるところから説明します(1回目だと、各チャンネルでの分布の幅に差がないので…、説明し辛いです…ぅぅ)。

2009_0518_04
図4.1回目の切り分けが終わったところ

上の正方形っぽい四角形と、下の横長の長方形では、下の長方形の横辺(赤チャンネル)が、全ての辺の中で一番長くなります。
この長方形の中に入る赤チャンネルの色分布で中央値を計算し、その中央値よりも小さいものと大きいものとで、2つの四角形に分けます。
中央値が左側(つまり、より黒に近い側)に寄っているのは、それだけ、この四角形の中に、黒っぽい色が多い、ということです。

2009_0518_05
図5.2回目の切り分けが終わったところ

というわけで、下の四角形が2つに分かれました。
暗い緑と鮮やかな赤に分かれましたが、これは、黒に寄った側では、緑の要素がより強い、ということの表れです。
2回目と同様に、3回目も、一番長い辺の中央値で切り分けます。

2009_0518_06
図6.3回目の切り分けが終わったところ

以後、64個の四角形に分割されるまで、この作業を繰り返す、というワケです。
参考のため、実際の画像で減色が処理される様子も載せておきます。

2009_0518_07
図7.実際の画像で減色が処理される様子

前のブログで、単純量子化法で減色したものは無駄が多い、と言っていましたが、それぞれの方法で減色した結果と、実際の画像の色分布の様子を合成して、比較してみます。

2009_0518_08
図8.単純量子化法による結果と色分布の対比

2009_0518_09
図9.メディアンカット法による結果と色分布の対比

それぞれ、青い点が、図2の色の点に対応しています。
この点の色が、減色後の色に変換された、ということです。

以前、単純量子化法では、左上の緑の部分に無駄が多い、というようなことを言っていましたが、改めて数えてみると、21色の無駄となっています。
およそ1/3ほどが無駄ですね。
これに比べて、メディアンカット法が、より優れているのは一目瞭然です。

中央値というと、学生の頃は、“使えない代表値”という印象だったのですが、“メディアンカット法”との出会いで、随分とその印象が変わりました。
どうしようもない不良クンが、雨の中、ずぶ濡れで子猫に優しくしているのを目撃してしまい、トキメいちゃった、みたいな?

まあ、普通の統計分析では、相変わらず、使いたくないんですケド。
そのへんも、どうしようもない不良っぽいですかね。

follow us in feedly
result = encodeURIComponent( "http://www.accessgames-blog.com/blog/2009/05/post-2e01.html" );document.write( "result = " , result );&media=https%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest">

| | コメント (0) | トラックバック (0)

« プログラマー的デザイン表現(2) | トップページ | ゲームと物理と私 »

プログラマー」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: 汝が半数の中心:

« プログラマー的デザイン表現(2) | トップページ | ゲームと物理と私 »