はじめに
ndimage.morphologyのdistance_transform_edtにより、背景からのユークリッド距離を計算する。
コード
解説
モジュールのインポート
データの生成
np.indices((60, 60))、によりインデックスを要素として持つ配列を生成する。
mask_circle1 = (x – x1)**2 + (y – y1)**2 < r1**2 により座標(x1, y1)を中心とする半径r1の円の内部がTrue となるbool配列を得る。
np.logical_or(mask_circle1, mask_circle2)により配列を各要素ごとに論理演算する。これにより円が2つ合体した風になる。
同様にして、np.logical_or(image, mask_circle3)で3つの円を合体させる。画像としては以下のようになる。
ユークリッド距離の計算
ndi.distance_transform_edt(image)でimageの背景からの距離を計算する。つまり、各円の中心は黒い部分からの距離が大きいため、要素も大きくなる。
3Dグラフで可視化
distanceを負にすることで、下に凸となるようにした。
円錐
四角錐
コードをダウンロード(.pyファイル)
コードをダウンロード(.ipynbファイル)
参考
scipy.ndimage.morphology.distance_transform_edt — SciPy v0.14.0 Reference Guide
さくらのレンタルサーバ
コメント