DebugWindowを作成しました

Boltzmanです. 前回記事更新から大分経ったかと思いましたが大体1か月くらいですね.
色々と忙しくて今回もなかなか進捗が上がりませんでした.

この一か月ずっと何をしていたのかというと, 「Group(Block)ごとに閾値を決定するスクリプトのデバッグをするためのウィンドウのデバッグ」です.
ん?本末転倒かな?? このままさまよい続けて私はどこへ行くのでしょうか…
まあしかし(デバッグをするためのウィンドウの)デバッグが終わったので心置きなくデバッグができますね!!

DebugWindow2

DebugWindow_
(× GropuID -> ○ GroupID)

何写したらいいかわからなかったのでとりあえずJ.J.Sakurai映しておきました.
二値化画像上で表示されている赤い四角形の部分が現在選択されているGroup(Block)です. このGroupのヒストグラムや閾値を表示します.
Groupの選択はマウスクリックでできるようになっています.
ヒストグラムの表示領域は256px*256pxでとってあるので, 1pxあたりに一つの階級という形になってしまい, ヒストグラムが毛みたいになっています.
閾値の取得はこれからなのでまだ確認できません. まあすぐに実装して見せるさ…

作ってみて気づいたことは如何にDebug.Logが重いかということです. いままでてっきりCPU-GPU間のデータ移動コストのせいで(デバッグ中に)遅くなっているのかと思っていましたが, そうではなくDebug.Logが重かったようです.

スクリプトはEditorWindowを使っていますが, 依存関係の問題で(?)Monobehaviour側からEditorWindow側を参照できなかったため, EditorWindowのスクリプトの他にDebugUtilsという, デバッグに必要なデータを管理するクラスを書いて両者を仲介させました. (これに気づくのに少々時間がかかりました. )

デバッグ用のウィンドウを作った一番のモチベーションは, もう少し感覚的にわかりやすい形で結果を確認したい, ということです.
どうしても結果の画像やヒストグラムの数値だけだと, 「なんとなくうまくいっていそう」という以上に確信が持てず, あとになってからバグが見つかるということが多いので, それが少しでも解消すればと思い作りました.

EditorWindow書いてて楽しかったです. 君も自分だけのデバッグ環境を構築しよう!!!

次回はこれを使って心置きなくデバッグします.

Posted on