オブジェクトの形状に関する様々な指標

材料中に粒子状のオブジェクトが散在する場合には、このページで紹介するような方法で、各粒子の形状に関する指標を取得できます。

粒子の分割

このようなデータを得るためには、通常、セグメンテーションの後に接続する粒子の分割処理が必要

様々なソフトウェアでセグメンテーション後の画像から粒子ごとに分割する処理が実装されています。典型的な処理方法は、2値画像に対して、表面からのDistance Mapを計算し、極大値をとる点を特定したうえで、極大点からWatershed法で粒子境界を決定する、というものです。この方法では通常、境界面が平面になりますが、セグメンテーション前のグレースケール画像の時点で境界面を示す情報が含まれている場合、Watershedを適用するときに使用する勾配画像を変更することで、境界位置を修正することも可能です。

3D Slicerで粒子を分割する方法は、こちらのページで動画で説明しています。

計算できる指標と意味合い

体積(Volume)・表面積(Surface Area)

各粒子の体積・表面積を計算し、その分布を計算することで、粒子サイズが均一かどうかがわかります。サイズの比較を行うのが主目的であれば、体積の3乗根を使うと、長さの次元になるので、便利な場面も多くあります。ただし、その目的であれば、等体積球相当半径がよりよいでしょう。

また、体積と表面積の比率を計算することで、粒子の表面積の相対的な大きさを計算することも可能です。ただし、これも表面積の相対的な大きさを計算する場合は、次の球形度のほうが無次元指標となるため優れています。

球形度(Sphericity)

同じ体積をもつオブジェクトの中で、表面積が最小となる形状は球体です。球形度は、体積と表面積の比率が、球と比べて、どれだけ余分に表面積をもっているかという意味あいで計算できます。球体のとき、最大値1をとります。球形度の厳密な定義は複数ありうるので、注意してください。

Sphericity = \frac{\pi^{1/3}{(6V)}^{2/3}}{A}
Sphericity = \frac{\pi^{1/6}{(6V)}^{1/3}}{{A}^{1/2}}

等体積球相当半径(Equivalent Radius)

オブジェクトの体積と等しい体積を持つ球の半径として計算されます。サイズの比較に最適です。

Equivalent Radius = \sqrt[3]{\frac{3V}{4\pi}}

方向(Orientation)

ボクセルの中心点を配置した散布図を想像してください。この散布図に、主成分分析(PCA)を適用した時の第一固有ベクトルが、粒子の長軸方向の向きとして扱うのに適しています。同様に、第二固有ベクトル、第三固有ベクトルも、厚み方向を示す値として利用できます。

等体積楕円体相当半径(Equivalent Ellipsoid Radius)

主成分分析で得られる、3つの固有値の比率をもとに、楕円体を構成します。この楕円体の3つの半径は、各固有値の平方根に比例する性質を利用して、等しい体積を持つ楕円体の3つの半径を計算できます。

異方性(Anisotropy)

1から第三固有値と第一固有値の比を引いたものです。球形からの離れ具合を示します。

伸長度(Elongation)

最大固有値に対する第二固有値の比率です。細長いオブジェクトになるほど、1から徐々に大きな値を持つようになります。
※日本語訳の「伸長度」は一般的に使われる訳かといわれると微妙です。ご注意ください。

扁平度(Flatness)

第三固有値と第二固有値の比。平らなオブジェクトになるほど、1から徐々に大きな値を持つようになります。

重心(Center of Gravity)

粒子の重心を計算すると、さらなる解析で役に立つ結果を得られることがあります。例えば、粒子が特定の方向に偏って存在するか、というような解析が可能になります。

フェレ直径(Feret Diameter)

2つの平行な平面でオブジェクトを挟むときの最小距離として計算できます。指定した方向の沿った距離を出力するソフトウェアと、全方向にわたってフェレ径を計算して平均した数値として出力するソフトウェアもあります。

回転を考慮したバウンディングボックス(Oriented Bounding Box)

最も小さい体積でオブジェクトを包める直方体をフィットさせたとき、それをOriented Bounding Boxと呼びます。これの3つの辺の長さを用いて、伸長度や扁平度に似た指標を計算できます。

file

ちなみに、この可視化は3D Slicer上でPythonコマンドを実行することにより生成しています。コマンドはこちら

接続性(Connectivity)

各粒子が、何個のほかの粒子と接しているかを計算すると、評価に役立つことがあります。注意点としては、1ボクセルで接しているだけで、接続している扱いにするか、ある程度の閾値を設けて接続判定をするかのバリエーションが考えられる点です。また、ボクセルの角同士で接している場合にも接続している扱いにするか否かのバリエーションが考えられるので、複数ボリュームを処理する際には、ロジックを統一する必要があります。