2010年10月22日 (金)斜めになっても、間切り
最近、新しくノートパソコンを購入しました。
実は、家では殆どパソコンを触ってこなかったのですが、周りの後輩たちが
プライベートでも何かかんかと勉強していることに危機感を覚えて、
「よーし、パパ、家でもプログラミングしちゃうゾ」
っと、一念発起したワケですよ。
奇しくも、この季節、秋の夜長と言えば、
プログラミングの秋、プログラミングの秋、そして、プログラミングの秋ですよね。
というわけで、ねちねちとメディアン・カットでございます。
あっ、本日の当番、
プログラマのM.L.Kでございますです(LはLordのLですLord&Master!)。
前回は、矩形による分割の限界を仮説しました。
正確に言うと、軸に沿った分割の限界、ということなのですが…。
「それって、どういうことなんだってばよ」
例えば、次のようなRチャンネルとGチャンネルの色の分布があったとします。
従来の方法ですと、R・Gいずれかのチャンネルでもっとも分布が広い(最大値と
最小値の差が大きい)軸に対して垂直に分割を行っていくことになりますので、
仮に4色に分割したとすれば…、
といった具合になります。
う~ん、恣意的に例示した分布ながら、この分割はあまりにもヒドい…。
右上のグループや、左下のグループに至っては、東京行き修学旅行の班分けで、
発酵系乙女と小悪魔系鱗翅目が同じグループになっちゃたくらいのヒドさです
(いやまあ、発酵系鱗翅目もいたりしますけども。たまに)
これが、軸にそった分割の限界、というワケです。
「じゃあ、どう分割したらいいんだってばよ」
もっともらしい(直観的に妥当な)のは…、
みたいなカンジでしょうか?
めっちゃ斜めですね…。いっそ、トドメも刺せるかもしれません。
この例だけではなく、実際の画像でも、斜めに分割するほうがもっともらしいこと
のほうが多いのです(前回の色分布の画像をみると分かりやすいと思います)。
今までのやり方のように、各チャンネル毎に中央値や差の最大値を算出していては、
この斜め具合には対処できません。
「じゃあ、その斜め具合はどうやって決めるんだってばよ」
実は、各チャンネル毎の分散の値と、各チャンネル間の共分散の値を用いて、
色の分布がどれくらい斜めっているかを算出する方法があります。
「分…さん…?影分身のこと…なのか?」
分散とは、分布の散らばり具合を表すものです。
分散 = Σ(各標本値-平均値)^2 / 標本数
という式で求められます。
色の分布で言うなら、例えば、Rチャンネルの分布について分散の値を求める場合、
各標本値=各ピクセルのRチャンネル値
平均値=全てのピクセルのRチャンネルの平均値
標本数=画像中のピクセル数
となります。
式を見ると明らかですが、各ピクセルの値が、平均値に近いものが多いほど、
つまり、散らばりが少ないほど、分散の値は小さくなります。
逆に散らばりが大きい→平均値から離れた値のピクセルが多いほど、
分散の値は大きくなります。
一方、共分散は、
共分散 = Σ(各R標本値-R平均値)×(各G標本値-G平均値)/ 標本数
という式です。
こちらは、2つのチャンネル=2次元上での分布の散らばり具合を表したもの
となります。
これら分散&共分散の値をごにょごにょポンすると、斜め具合が算出できる、
というわけです。
この、“ごにょごにょポン”を、“主成分分析”と言います。
(“分析”とか、激アガるし!)
今回は、用語の解説をするだけになってしまいました。
次回は、この主成分分析で斜め具合を求めてみたいと思います。
| 固定リンク | コメント (0) | トラックバック (0)
「プログラマー」カテゴリの記事
- 技術交流の業(2019.03.07)
- 福袋争奪戦デビュー(2019.01.31)
- 温泉旅行(2019.01.24)
- ゲーセンの近況(2018.11.29)
- 健康的にプログラミングを続けるためのちょっとした習慣(2018.10.18)
この記事へのコメントは終了しました。
コメント