« プログラマー的処理を減らすための数学 | トップページ | 次こそは当ててみせる! »

2010年8月16日 (月)Beyond the Dead Center

灼熱の埋め立て地で、同好の志と熱いパトスを交わし合ったであろう皆さん。
おはようございます。今夏の獲得の成果は如何でしたでしょうか?
昨今の厳しい景気事情の中、内需拡大への貢献に勤しんだことと思われます。

かくいう私め、プログラマのM.L.K(LはLZHのLです。LZH&GCA!)は、プログラマらしく、閉め切った部屋でガンガンにクーラーが効かせて布団にくるまりながら、イベント終了後に開始されるダウンロード販売のサイトで、購入ボタンをクリックしては解凍、購入ボタンをクリックしては解凍、を何度も何度も繰り返し、内需の拡大に貢献すべくリビドーを発散しておりました。

そんなこんなで、本日の当番です。
しつこくメディアンカットします。

前々回(参照:『スロー・プログラム』)、分割を行うたびに色の割り当ての見直しを行うと、減色の結果は非常に良好であるものの、処理に必要な時間も非っ常~に長くなる、ということを取り上げました。

処理に時間がかかるのは、莫大な量の繰り返しが発生するからなのですが、分割のたびに見直しをする、という考え方自体が、そもそも多重の繰り返しを含む発想であるため、処理時間をなんとかするには、問題へのアプローチ自体を見直す必要があります。

つまり、「分割を行うたびに色の割り当てを見直さなくても、色の分布に沿った、もっともらしい分割をすることができる方法」を探す、というわけです。

とは言え、現段階ではノーアイディア。┐(´ー`)┌

しょうがないので、

1.見直しをせずに分割を続け、最後だけ色の割り当てを見直した場合
2.分割を行うたびに色の割り当てを見直した場合


とを比較し、今後の方針を検討します。

2010_0813_01
図1.今回のオリジナル画像

図示しやすくするため、今回はRチャンネルとGチャンネルのみの画像を用います。
この画像中に使われている各色がどのように分布しているかは以下の通り。

2010_0813_02
図2.画像中に含まれる色の分布図

分布の疎密がはっきりとしていて、特徴を捉えやすいことが分かります。
(分布の塊や、筋のような流れが見てとれる)

で、これを、1と2の方法で、64色に減色した結果が、下の2つの画像です。

2010_0813_03
図3.方法1の減色結果

2010_0813_04
図4.方法2の減色結果

結果の良し悪しについては、前々回の繰り返しとなるので割愛しますが、前々回議論されたそれぞれの減色の特徴は、今回のケースでも見てとれます。

問題は、それぞれの方法の結果、どのような分割になったか、ということ。

2010_0813_05
図5.方法1の分割図

2010_0813_06
図6.方法2の分割図

それぞれ、減色の結果抽出された64色が、赤256階調×緑256階調=65536色のどの範囲をカバーしているかを示す図となっています。

ちょっと見るだけでは、殆ど同じようにも思えますが、オリジナル画像の色の分布を重ね合わせてフリップさせてみると、実は、かなり違っていることが分かります。

2010_0813_07 
図7.それぞれの比較

どうでしょうか?
1.に比べて、2.のほうが、色の分布の特徴により沿った形で分割されていることが見てとれると思います。
(特に、緑と赤・橙の境界の形、赤の2筋の流れに従った分割)

2.がオリジナルの画像の特徴をより捉えた減色となっているのは、まあ、何回も何回も適切な色の割り当てがされているかどうかを、確認しながら分割をすすめているから、という理由につきます。


1.が、ややいい加減な結果となっているのは、元が、

2010_0813_08
図8.単純なメディアンカットの分布図

こういった各チャンネルの軸に水平(垂直)な矩形で収まるように強引に分割したものだからです。(結果、より多くの外れ値を含んだ状態で分割が進んでいく)
今回の画像のように、左下(黒)から右上(黄色)への分布の流れがあるような場合だと、その傾向が顕著です。

矩形だけで、画像の色分布の特徴を保持した分割をするのには、限界がありそうです。

と、いうことは、もしかすると、矩形で分割するのではなく、最初から色の分布の流れに従った形で分割していけば、あるいは、より適切な分割ができるのではないでしょうか?

これは、ちょっと面白い仮説です。

というワケで、次は脱・矩形分割を試みたいと思います。

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

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

« プログラマー的処理を減らすための数学 | トップページ | 次こそは当ててみせる! »

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

コメント

コメントを書く



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


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



トラックバック


この記事へのトラックバック一覧です: Beyond the Dead Center:

« プログラマー的処理を減らすための数学 | トップページ | 次こそは当ててみせる! »