ガウシアンフィルタは、画像の平滑化(ぼかし)に使われるフィルタの1つです。ガウス分布を利用して、注目画素からの距離に応じて近傍の画素値に重みをかけることで画像をぼかします。今回はOpenCVのGaussianBlurを使用してガウシアンフィルタをかけていきます。
インストール
OpenCVをまだインストールしていない場合には以下のコマンドでインストールできます。
pip install opencv-python
ぼかしをかける
以下の画像をもとにぼかしをかけていきます。
元画像
カーネルサイズの調整
カーネル=(1, 1)、標準偏差3
import cv2 img = cv2.imread('img/img.jpg') dst = cv2.GaussianBlur(img, (1, 1), 3) cv2.imwrite('img/img_gauss.jpg', dst)
結果
カーネル=(5, 5)、標準偏差3
import cv2 img = cv2.imread('img/img.jpg') dst = cv2.GaussianBlur(img, (5, 5), 3) cv2.imwrite('img/img_gauss.jpg', dst)
結果
カーネル=(15, 15)、標準偏差3
import cv2 img = cv2.imread('img/img.jpg') dst = cv2.GaussianBlur(img, (15, 15), 3) cv2.imwrite('img/img_gauss.jpg', dst)
結果
カーネルサイズを大きくすると、ぼかしの具合が強くなります。
標準偏差の調整
カーネル=(15, 15)、標準偏差1
import cv2 img = cv2.imread('img/img.jpg') dst = cv2.GaussianBlur(img, (15, 15), 1) cv2.imwrite('img/img_gauss.jpg', dst)
結果
カーネル=(15, 15)、標準偏差2
import cv2 img = cv2.imread('img/img.jpg') dst = cv2.GaussianBlur(img, (15, 15), 2) cv2.imwrite('img/img_gauss.jpg', dst)
結果
カーネル=(15, 15)、標準偏差3
import cv2 img = cv2.imread('img/img.jpg') dst = cv2.GaussianBlur(img, (15, 15), 3) cv2.imwrite('img/img_gauss.jpg', dst)
結果
標準偏差を大きくしていくと、ぼかしの具合が強くなります。
カーネル=(15, 15)、標準偏差0
import cv2 img = cv2.imread('img/img.jpg') dst = cv2.GaussianBlur(img, (15, 15), 0) cv2.imwrite('img/img_gauss.jpg', dst)
結果
標準偏差に0を指定すると、カーネルサイズから標準偏差が自動計算されます。特に細かな調整が必要なければ、標準偏差は0にしてカネールサイズだけ変更すれば十分かと思います。