[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によるユークリッド距離の例を表示する。

コード

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

解説

モジュールのインポート

バージョン

データの作成

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)により、ユークリッド距離変換像を生成できる。像を表示すると下のようになる。

まとめの図

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

参考

scipy.ndimage.distance_transform_cdt — SciPy v1.6.2 Reference Guide
scipy.ndimage.distance_transform_edt — SciPy v1.6.2 Reference Guide
Module: morphology — skimage v0.19.0.dev0 docs

コメント