StudyCS.log

ただの日記

2021/11/12(タイマープロセスのさわりはじめ)

ただの日記。
 
アニメーションを書く
 引き続きJavaで2Dのプログラミングを学んでいる。昨日の段階で、ボード上に絵を書いたりロードした画像を表示したりというところまではできた。今日はロードした画像をボードの上で動かしてアニメーションを作る場合を考える。アニメーションを書くなら、まずはボードをきれいにして、絵の座標を計算して、計算された座標に指定の絵を描画する、という流れで作る。これを指定された時間ごとに行うということだ。
 絵を描画する作業は、昨日のボードに絵を書く作業と同様なので良いとして、新たにタイマープロセスについて考える必要が出てきた。どのように、時間を計測し、指定時間ごとの処理を達成するかだ。今日はSwing Timerというのを試した。これはシンプルだが、非効率な方法ということだ。明日は、Utility Timer とThreadを試す予定で、それが終わったら、また振り返りを行いたいと思う。
 
しきい値を決定する
 画像を二値化するためには、そのしきい値を決定する必要がある。最も単純な方法は固定のしきい値を決定し、そのしきい値をもとに画像を2つの値に変換することだが、現実の環境では照明環境が時々刻々と変化することが多い。そこで、画像に含まれる情報から動的にしきい値を決定する方法を考える必要がある。動的なしきい値を決定する方法として有名なのはモード法やP-タイル法があっる。モード法は画像から生成されたヒストグラムのなかから条件を満たすしきい値を選んでくる方法で、p−タイル法は抽出対象が画像中で占める割合を以てしきい値を決定する。さらには、パラメータを全く指定せずにしきい値を決定する方法もあって、これが判別分析法だ。判別分析法では、画像を2つのクラスに分割して、その2つのクラスの平均値の分散がもっとも離れるようなパラメータを探索する(つまり、2つのグループの平均をとったときに、その平均がもっとも離れるようなパラメータを探索する)。これは完全に計算のみで求められるもので、パラメータを考える必要や、解なしに対応する必要がない。すばらしい。感動した。
 
 Ladder Seriesのイソップ物語を読んでいる。これが原作にどれほど忠実に作っているのか謎なのだが、僕の知っている話と結構違っていたりする。例えばオオカミ少年の話の場合、僕の知っているオオカミ少年は悪意によって嘘を付き、最終的に痛い目にあった。ただ、この本では、オオカミ少年は単に臆病が故に、勘違いで人を読んだことになっている。
 どっちが本筋なのかはさておきとして、ボク個人としては校舎のほうが、読者を考えさせる効果は高いと考える。だって現実では、悪意で嘘を吹聴する人というよりは、割と真に迫った感じで(嘘を嘘と思わず)嘘をばらまく人のほうが多いからな。