Featured image of post 画像の距離変換をおこなう

画像の距離変換をおこなう

本記事はQrunchからの転載です。


画像に対する距離変換とは、グレースケールの画像において、ピクセルから最も近い0の値をもつピクセルまでの距離を求めたものです。

早速OpenCVで試してみます。

OpenCVで距離変換

次のようにして距離変換をおこなえます。

dist = cv2.distanceTransform(img,
                             distanceType=cv2.DIST_L2,
                             maskSize=5
                            )

distanceTypeに距離の計算方法を指定します。DIST_L2はユークリッド距離です。 maskSizeには最も近い0の値をもつピクセルまでの距離の近似値を計算するときに使うmaskの大きさを指定します。maskSize=5の例でいえば、maskをあらわす$5\times5$の行列の各要素にはmaskの中心からの距離が格納されています。このmaskを使うことで、正確に距離を計算するよりも速く距離(の近似値)が計算できます。

結果は以下のとおりです。

入力画像 距離変換適用(明るいほど距離大)

背景が0の値をもつので、そこまでの距離が反映されています。窓の中心や、猫の顔の中心は背景から遠いので、大きな値をもっています。

comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。