forked from: Thresholdと二値化について

今更、二値化のコードもないと思いますが、私もASを最近始めたばかり
ですので、わからない事をネットであちこち調べてます。
しかし thresholdを使うのは良いのですがどうも明暗のおかしい妙な
二値化画像ばかりみかけます。

まず、Actionscript 二値化といったキーワードでグーグル検索すると
トップにrsakaneさんのサイトが出てきます。
申し訳ないですが、こちらのページは間違ってます。
http://www40.atwiki.jp/spellbound/pages/168.html

thresholdのパラメータ
"<=", 0x7FFFFF, 0xFF000000, 0xFFFFFF

これ、実際に塗りつぶして試されるとわかりますが、
0x00FFFF(シアン)は輝度に関係なく通って黒になります。同様に 0x00FF00　、　
0x0000FF　といった数値も赤輝度が0x80以上でない限り黒くなります。
この方法で二値化するのであれば閾値を0x7F7F7Fに設定する必要があります。

http://aquioux.blog48.fc2.com/blog-entry-694.html
少し前にAquiouxさんがこちらのページで疑問を書かれていますが、
thresholdは大小を32ビットの数値で比較しているだけで、
バイト単位で比較している訳じゃないという事だと思います。

多分、閾値を変えて二値化するのであればRGBの要素それぞれに
threshold使わないといけないのではないでしょうか。

上の例で0x7F7F7Fを閾値にする場合は32ビットの中央値になるので良いのですが、
0x404040といった閾値だと不等号では評価できなくなります。
(※追記　すみません。読み直すと上2行は紛らわしかったです。)

普通は、グレースケールに変換する事が多いと思いますが。
単純に二値化＝threshold と考えるのは問題かもしれませんね。

10/03/17 SharaQ