ITいろいろ

プログラミングやクラウド、データ解析など、ITにかかわることをいろいろと書いています。

OpenCV/ガウシアンフィルタで画像をぼかす

今日はぼかしについて記述していきます。

コード紹介

# インポート
import cv2

# 画像ファイルの読み込み
img = cv2.imread("Lenna.jpg")

# ガウシアンフィルタでぼかす
img_blur = cv2.GaussianBlur(img, (9,7), 0)

# 読み込んだ画像の出力。
cv2.imshow('Lenna_sobel', img_blur)

# 何かのキーを入力待ちする。64bitのマシンの場合は「& 0xFF」が必要らしい
cv2.waitKey(0) & 0xFF
# ウィンドウを閉じる
cv2.destroyAllWindows()

出力結果

ちょっとだけぼけた。

引数の解説、変更

cv2.GaussianBlur(img, (9,7), 0)の第二引数、(9,7)はksize(カーネルサイズ)と呼ばれるもので、画像の中で横9ピクセル、縦7ピクセルを取り、その箱の中で各ピクセルの色を何にするのかを計算する形になっています。なのでこの箱を大きくすると、もう少し荒い(ぼけた)画像になります。

第三引数の0は、細かいことは分かりませんが、ぼけ度と思ってもらったらよいです。0は自動、1以上は大きくなるほどぼけ度が上がります。

img_blur = cv2.GaussianBlur(img, (15,13), 0)

img_blur = cv2.GaussianBlur(img, (15,13), 10)

終わりに

ぼかす方法はこの他にも平均値フィルタcv2.blur、中央値フィルタcv2.medianBlurなどありますが、ガウシアンフィルタがシンプルなコードでかつぼけ度を変えられるので、おすすめです。