[SciPy] 12. ndimageのdistance_transform_cdt, distance_transform_edtによる2値化像の距離変換

matplotlib

はじめに

ndimageのdistance_transform_cdt, distance_transform_edtにより、2値化像の距離変換像を作成することができる。ここでは、distance_transform_cdtによるマンハッタン距離、チェスボード距離、distance_transform_edtによるユークリッド距離の例を表示する。

コード

解説

モジュールのインポート

バージョン

データの作成

skimageのdiskにより、平らな円盤状の構造要素を作成する。作成方法については下記記事で詳しく解説している。

[scikit-image] 75. サイズの異なるディスク状の構造化要素を生成(skimage.morphology.disk)
skimage.morphologyのdiskで、大きさの異なるディスク状の構造化要素を作成して表示する。

データの表示

imshowで値とともに表示すると下のようになる。

チェスボード距離変換

distance_transform_cdt(struc,metric=’chessboard’)により、チェスボード距離変換像を生成できる。像を表示すると下のようになる。

マンハッタン距離変換

distance_transform_cdt(struc,metric=’taxicab’)により、マンハッタン距離変換像を生成できる。像を表示すると下のようになる。

ユークリッド距離変換

distance_transform_edt(struc)により、ユークリッド距離変換像を生成できる。像を表示すると下のようになる。

まとめの図

これまでに示した図をまとめて表示するとこのようになる。

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

参考

scipy.ndimage.distance_transform_cdt — SciPy v1.12.0 Manual
scipy.ndimage.distance_transform_edt — SciPy v1.12.0 Manual
skimage.morphology — skimage 0.23.0rc1.dev0 documentation

コメント