Python OpenCV 空間フィルタ #4

株式会社リュディアです。Python を使った画像処理として OpenCV を使った方法をまとめていきます。

前回までの Python OpenCV 空間フィルタ のまとめへのリンクは以下を参考にしてください。

今回はエッジ抽出を行うフィルタとしてラプラシアンフィルタについてまとめます。ラプラシアンフィルタは2次微分を利用したエッジ抽出フィルタです。

では以下のコードを一緒に見ていきましょう。原画像は Lena です。

import cv2
import numpy as np

filebase = 'lena'
path = filebase + '.tiff'
image = cv2.imread(path, 1)

lap = cv2.Laplacian(image, cv2.CV_32F, ksize=3)

cv2.imshow('laplacian', lap)

cv2.waitKey(0)
cv2.destroyAllWindows()


読み込んだ画像をグレイスケールに変換し、OpenCV標準の Laplacian() を使います。実質、カーネルサイズ ksize = 3 を指定しているだけです。ではフィルタリング結果を見てみましょう。

画像1

過去にまとめたエッジ抽出フィルタと比較するとラプラシアンフィルタではX, Y に分類しませんでしたね。また処理後の画像で非常に細かく境界が検出されていることもわかりますね。

OpenCV 空間フィルタに関するまとめの続きは以下からどうぞ。

では、ごきげんよう。


この記事が気に入ったらサポートをしてみませんか?