tkenichi の日記

毒舌皮肉系恥さらし日記

穴の個数を数える

f:id:tkenichi:20130728102412j:plain

入力としてデジタル画像を与えて、色がついていないところを穴として、いくつあるかを数えるソフトウェアはあるだろうか?2次元図形の穴の個数を数えるということは、ホモロジー群を計算するということである。計算ホモロジーという分野が最近発展しているらしく、最初の問いに答えるようなソフトウェアもフリーソフトウェアとして公開されている。それが CHomP である。*1

http://chomp.rutgers.edu/

雨の連休中に少し触ってみた。いくつかのコマンドラインプログラムの集まりになっていて、GUI はコマンドライン引数を与えるランチャーがある程度であるので、使いこなすのはちょっと難しいかもしれないが、面白い機能がいくつかある。

2次元の画像と閾値を与えて、集合(2つ閾値を与えて集合対を与えることもできる)を定義し、そのホモロジー群を計算してくれる。たとえば、東京の地下鉄の路線図をなぞってみた図形

f:id:tkenichi:20130916181101j:plain

ホモロジー群は、0次が Z で、1次が Z^74 と計算してくれる。それ以外に単体複体を組み合わせ的に与えたときも計算してくれるし、3次元の立方体集合(ここでは cubical set といっているが voxel のようなもの)を与えたときのホモロジー群も計算できる。

つまり、3次元のポリゴンデータやCTなどのボクセルデータのホモロジー群が(変換プログラムを作る必要はあるが)計算できるようになるということである。これで今まであまり定量化できなかった性質が見えてくると面白そう。

*1:chompで検索すると別のコマンドプログラムがヒットしてしまうので、注意