Python OpenCV3でGaussianオペレータを使って平滑化

Facebook にシェア
Pocket
LINEで送る
このエントリーを Google ブックマーク に追加

移動平均オペレータよりも加重平均オペレータの方がよりエッジがくっきりした平滑化ができる。
今回はGaussianオペレータを使って加重平均を取得する。

[amazonjs asin=”4061538225″ locale=”JP” title=”OpenCVによる画像処理入門 (KS情報科学専門書)”]

 

前提

ディレクトリ構成などはこことかこことか。

&nbsp

元画像

移動平均オペレータと比較するため、カラスの画像(karasu.jpg)を使う。
karasu

 

Gaussianオペレータ

Pythonの場合、移動平均を行う場合はGaussianBlurメソッドを使う。
GaussianBlurメソッドの使い方は以下のとおり。

[python title=”GaussianBlurメソッドの使い方”] # 平均化する画素の周囲の大きさを指定する。
# (25, 25) の場合、個々の画素の地点の周囲25×25マスの平均をとる。
# 数値が大きいほどぼやける。
average_square = (25, 25)

# x軸方向の標準偏差
sigma_x = 1

# Gaussianオペレータを使用して平滑化
img_gauss = cv2.GaussianBlur(img_src, average_square, sigma_x)[/python]

sourceディレクトリ配下にgauss.pyを作成する。

[python title=”gauss.pyメソッドの内容”] # -*- coding: utf-8 -*-

import cv2
import numpy as np

if __name__ == ‘__main__’:

# 画像の読み込み
img_src = cv2.imread("./image/karasu.jpg", 1)

# 平均化する画素の周囲の大きさを指定する。
# (5, 5) の場合、個々の画素の地点の周囲5×5マスの平均をとる。
# 数値が大きいほどぼやける。
average_square = (25, 25)

# x軸方向の標準偏差
sigma_x = 1

# Gaussianオペレータを使用して平滑化
img_gauss = cv2.GaussianBlur(img_src, average_square, sigma_x)

# 表示
cv2.imshow("Show GAUSS Image", img_gauss)
cv2.waitKey(0)
cv2.destroyAllWindows()

[/python]

実行してみる。

[shell] (opencv_python)$ python gauss.py
[/shell]

スクリーンショット 2015-07-04 0.30.06

 

少しぼやけてるが、移動平均オペレータのとき

スクリーンショット 2015-07-03 23.21.03

よりもエッジがはっきりしている。

 

Related posts

コメントを残す