[scikit-image] 54. ラベリングした領域のサイズ、角度、重心などの測定(skimage.measure regionprops)

python

はじめに

skimage.measureのregionpropsによって、ラベリングした領域の性質を取得する方法について説明する。

コード

コードをダウンロード

解説

モジュールのインポート

回転した楕円の生成

ellipse(256, 256, 100, 256)で中心(256,256)に短径100×2、長経256×2の楕円を生成する。
image[rr, cc] = 1で楕円に該当する部分を1とする。
rotate(image, angle=45)によって左に45度回転する。

ラベリングとプロパティの取得

regionprops(ラベリングした画像)ですべてのラベルの性質のすべてを取得することができる。返り値はラベルごとのリストとなる。

画像の表示

図形の表示

楕円の重心と長径と短径

props.centroidで重心の座標、props.orientationで向き(楕円の主軸と軸の間の角度)が得られる。
major_axis_lengthは長辺、minor_axis_lengthは短辺となる。

バウンディングボックスの表示

Bounding Boxとは,対象物を囲むことのできる最も小さい四角形のことで、props.bboxで取得できる。

表示範囲の設定

参考

Measure region properties — skimage v0.15.0 docs
Module: transform — skimage v0.15.0 docs
Module: measure — skimage v0.15.0 docs

コメント