表面積計算の方法を比較

はじめに

セグメンテーションが完了したデータをもとに、オブジェクトの表面積を計算できます。表面積計算の方法はソフトウェアごとに実装するアルゴリズムが異なることがあり、注意が必要です。

file

表面積計算の方法には、大きく分けると、ポリゴンデータから計算する方法と、ボクセルデータから計算する方法があります。解説のために、CTで球体を撮影して、次のような画像を得ていたとします。2次元の図示になりますが、3次元でも同じことが言えます。

CT/FIB-SEM、装置を問わず、解像度の限界があるため、取得される画像は限界まで拡大するとギザギザしている

ポリゴンデータから計算する方法

ポリゴンデータから表面積を計算する方法は、基本的にポリゴン(三角形や四角形など)の各面積を合算することによって行われます。入力データがボクセル形式の場合、マーチングキューブ法などでポリゴンデータに変換する必要があります。

ここで注意が必要になります。ポリゴンデータ化に使用するアルゴリズムやパラメータによってポリゴンデータの出力が異なるため、ポリゴンデータから計算する方法により計算される表面積は、ポリゴンデータ化に使用するアルゴリズムに依存した結果を出力します。すなわち、この方法で表面積を計算する場合、同じポリゴンデータ化アルゴリズム・パラメータを使用しないと、2つの材料を比較することが難しくなります。さらに、別の問題としては、ポリゴンデータ化の過程で小さな構造が消失することがあります。情報のロスにより、不正確な結果になりやすいことにも留意する必要があります。

ポリゴンデータの生成方法は必ずしも一意ではない

先に短所を書いてしまいましたが、長所は計算方法が、とても直感的で理解しやすいことです。すべてのポリゴンの面積を合計するだけです。図でいうところの点線で書かれている折れ線の長さ合計に相当します。

ボクセルデータから計算する方法

こちらの方法の明確な長所は、直接ボクセルデータから計算を行うため、ポリゴンデータ化のアルゴリズム選択による結果のブレを生じないところです。ただし、よく注意しないと正確な表面積が計算できません。

一つの簡単に思いつく方法としては、オブジェクトの表面に露出するボクセル表面(長方形)の面積の合計を出す、というものです。しかし、この方法では多くの場合、表面積を過剰評価してしまいます。

球体がなめらかなのと比べると、ギザギザするので、表面積が大きく計算されてしまう

そこで考案された、別の方法があります。Croftonの公式、というものを使う方法です。モーガン・クロフトンという人が考えた方法です。最後のご紹介になりましたが、こちらの方法が最もおすすめです。原理的にボクセルの情報をすべて活用して、非常に正確な表面積を計算できます。

Croftonの公式により計算された表面積は、ポリゴンデータを経由する場合と比較して精度が良いことが知られています。誤差は、球の半径に相当する解像度が12ボクセルのとき1.2%、25ボクセルのとき0.13%、50ボクセルのとき0.094%、100ボクセルのとき0.028%というように解像度が高くなるほど良くなっていきます。このような性質はマーチングキューブ法などでは見られないので、Croftonの公式による計算の明確な長所になります。

短所があるとすれば、計算の方法が難しいことです。

ごく簡単に説明すると、まずオブジェクトに対していろいろな方向から光線を交差させます。複雑な形になり、周の長さが増えるほど、輪郭との交差回数が増えます。このとき、各方向から引いた線と表面の交差する回数の平均を計算すると、周の長さに比例します。2次元における周の長さ、3次元における表面積を求めるために使えます。

...と書いてはみたものの、やはり難解であることには変わりないので、素直に実装済みのソフトウェアを利用するとよいと思います。

まとめ

表面積はソフトウェアによって計算方法が異なる場合があるので、一度確認することをおすすめします。ブラックボックスなソフトウェアの場合、一度、直径既知の球体に対して表面積を計算して、真値と比較してもよいと思います。