ラプラシアンフィルタとは
二次微分を利用して画像から輪郭を抽出する空間フィルタです。
x方向とy方向の2次微分の和をラプラシアンという。
$$\nabla^2 = \frac{ \partial }{ \partial x^2 } + \frac{ \partial }{ \partial y^2 } $$
2次微分はノイズも検出してしまう可能性がある。
ラプラシアンカーネル
$$F = \begin{bmatrix} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{bmatrix}$$
斜め方向も考慮したラプラシアンカーネル
$$F = \begin{bmatrix} 1 & 1 & 1 \\ 1 & -8 & 1 \\ 1 & 1 & 1 \end{bmatrix}$$
Python+OpenCV
import matplotlib.pyplot as plt import cv2 import numpy as np gray=cv2.imread('haruna_kankore.png', 0) cv2.imwrite('gray_model.png', gray) laplacian = cv2.Laplacian(gray, cv2.CV_32F, ksize=3) cv2.imwrite('laplacian_model.png', laplacian)
出力結果
元画像
ラプラシアンフィルタ