画像平面分割の高速化(3)[了]
2009/12/22 21:26 - AS3.0
前回のあらすじ。
ボクらのヒーロー BitmapData.histogram。
彼の力を使えば、どんなに大きな BitmapData でも、全ピクセルの色検査なら 256 回のループで済んでしまうのさ!
BitmapData.histogram とはどのようなものか、というのを前回確認したわけですが、今回のプログラムにおける BitmapData.histogram の使いどころ、すなわち、このアルゴリズムでボトルネックになると容易に推察される BitmapData の全ピクセル走査処理というのは、一体どれくらい発生するのか。
それは前々回見ましたが、1フレームで最低でも2回、最大3回も発生します。 輝度の平均値を求めるために1回、輝度の標準偏差を求めるために1回、平均色を求めるために1回です。
何万回もの走査を3回もおこなっていたところを、256回の走査を3回で済ませることができるようになったんだから、そりゃあ処理も速くなろうというもの。
ところで私が今回組んだコードでは、前2者は getStandardDeviation という一つのメソッド内でおこなうように書いています。
ループ回数は256回にダイエットできたとは言え、同じようなループを2回やるってもの芸がないですよねー。 ここを何とかできないもんですかねぇ。
なんとなくですが、最初のループで求めた輝度の平均値と BitmapData.threshold を巧く組み合わせれば、2回目のループをおこなわなくても、輝度の標準偏差に相当する値を一括でガツンとゲットできるような気がするんですよねー。
でもまだうまくいってないんです(涙)。
まぁ今後の課題ってことで、ゆるゆると検討していく所存です。