Python版OpenCVのcv2.GaussianBlur(ガウシアンフィルタ)で画像をぼかし(平滑化して)、ノイズを除去する方法をソースコード付きで解説します。
ガウシアンフィルタ(cv2.GaussianBlur)
本ページの内容は以下動画で解説しています。
ガウシアンフィルタ(Gaussian Filter)は、画像をぼかし(平滑化して)、ノイズを除去する空間フィルタです。
輪郭検出や特徴点検出の前処理などに広く使用されます。

【画像処理】ガウシアンフィルタの原理・特徴・計算式
画像処理におけるガウシアンフィルタの原理や計算式についてまとめました。

【Python】ガウシアンフィルタのカーネルを計算
この記事では、Python+NumPyを用いて、ガウシアンフィルタのカーネルを計算する方法をソースコード付きで解説します。
このアルゴリズムは、NumPyだけでも簡単に実装できます。
また、OpenCVの「cv2.filter2D()関数」や「cv2.GaussianBlur()関数」を使えば、より簡単に実装できます。
書式①
dst = cv2.filter2D(src, -1, kernel)
| パラメータ名 | 説明 |
|---|---|
| src | 入力画像 |
| kernel | フィルタのカーネル(※NumPy配列で与える) |
| dst | 出力画像 |
書式②
dst = cv2.GaussianBlur(src, ksize, sigmaX)
| パラメータ名 | 説明 |
|---|---|
| src | 入力画像 |
| ksize | カーネルサイズ |
| sigmaX | ガウス分布の$\sigma_x$ |
| dst | 出力画像 |
今回は、以下の3通りの方法で処理を実装してみました。
| 方法 | 説明 |
|---|---|
| 方法① | NumPyでアルゴリズムを書いて実装(原理の理解を深めるため) |
| 方法② | cv2.filter2Dで実装 |
| 方法③ | cv2.GaussianBlurで実装 |
【サンプルコード】Python3 + OpenCV
サンプルプログラムのソースコードです。
方法①
方法②
方法③
実行結果
サンプルプログラムの実行結果です。
■入力画像(左)と出力画像(右)


関連ページ

PythonとOpenCVで画像処理超入門
Python版OpenCVで画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。

コメント