はじめに
scipy.distanceのeuclideanにより画像中の物体間のユークリッド距離を求める方法について説明する。
コード

解説
モジュールのインポート
バージョン
データの読み込み
下記サイトの画像を用いる。

宇宙ペンギンのイラスト
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。
RGBAをRGBに変換し、グレースケール化してからubyte形式に変換する。
大津の2値化
大津の2値化でバイナリ画像とし、openingで微小なノイズ部分を消去する。結果は下図のようになる。

2値化像のラベリング
skimageのlabelでラベルイメージを作成して表示する。ラベルナンバーを各ラベル領域に表示しているが、最小値が2となっている。これはclear_borderで除去した部分がラベルナンバー1となっているためとなっている。

ペンギンらのユークリッド距離を求める
ペンギンの重心を求める
ペンギンの腹の重心をregionpropsで取得したデータのcentroidから求める。
ユークリッド距離の計算
distance.euclideanで各ペンギン間の距離を求める。
ラベル画像上に表示

元画像上に表示

まとめて表示

左上が画像のグレースケール像で、右上が2値化像、左下がラベル像で、右下がオリジナル画像上にペンギン間のユークリッド距離を表示した結果となっている。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考
Distance computations (scipy.spatial.distance) — SciPy v1.15.1 Manual

宇宙ペンギンのイラスト
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。
コメント