はじめに
scipy.distanceのeuclideanにより画像中の物体間のユークリッド距離を求める方法について説明する。
コード
![](https://sabopy.com/wp/wp-content/uploads/2021/10/distance_euclidean_5-1.png)
解説
モジュールのインポート
バージョン
データの読み込み
下記サイトの画像を用いる。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhACOoXwGeJvC72_xbpGGoYcXzuuOBmO1cqHTCkozXH28qJo8Cuy_F-JhzSB96ZVgFqnXxFsmFDocQySl1att9SQLsauWRcaTVJqzXsV4B0Y0pfKv7wWViyy4LKd8nWyIOXhjSMCdgfy1J2/s400/space_uchu_penguin.png)
宇宙ペンギンのイラスト
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。
RGBAをRGBに変換し、グレースケール化してからubyte形式に変換する。
大津の2値化
大津の2値化でバイナリ画像とし、openingで微小なノイズ部分を消去する。結果は下図のようになる。
![](https://sabopy.com/wp/wp-content/uploads/2021/10/distance_euclidean_1-1.png)
2値化像のラベリング
skimageのlabelでラベルイメージを作成して表示する。ラベルナンバーを各ラベル領域に表示しているが、最小値が2となっている。これはclear_borderで除去した部分がラベルナンバー1となっているためとなっている。
![](https://sabopy.com/wp/wp-content/uploads/2021/10/distance_euclidean_2-1.png)
ペンギンらのユークリッド距離を求める
ペンギンの重心を求める
ペンギンの腹の重心をregionpropsで取得したデータのcentroidから求める。
ユークリッド距離の計算
distance.euclideanで各ペンギン間の距離を求める。
ラベル画像上に表示
![](https://sabopy.com/wp/wp-content/uploads/2021/10/distance_euclidean_3-1.png)
元画像上に表示
![](https://sabopy.com/wp/wp-content/uploads/2021/10/distance_euclidean_4-1.png)
まとめて表示
![](https://sabopy.com/wp/wp-content/uploads/2021/10/distance_euclidean_5-1.png)
左上が画像のグレースケール像で、右上が2値化像、左下がラベル像で、右下がオリジナル画像上にペンギン間のユークリッド距離を表示した結果となっている。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考
Distance computations (scipy.spatial.distance) — SciPy v1.14.0 Manual
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhACOoXwGeJvC72_xbpGGoYcXzuuOBmO1cqHTCkozXH28qJo8Cuy_F-JhzSB96ZVgFqnXxFsmFDocQySl1att9SQLsauWRcaTVJqzXsV4B0Y0pfKv7wWViyy4LKd8nWyIOXhjSMCdgfy1J2/s400/space_uchu_penguin.png)
宇宙ペンギンのイラスト
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。
コメント