【Python】ガウシアンフィルタのカーネルを計算

この記事では、Python+NumPyを用いて、ガウシアンフィルタのカーネルを計算する方法をソースコード付きで解説します。

ガウシアンフィルタのカーネル

今回はPythonとNumPyを使って、任意のカーネルサイズ(ksize * ksize)のガウシアンフィルタのカーネルを求めました。

ソースコード(Python3+NumPy)

サンプルプログラムのソースコードです。

# -*- coding: utf-8 -*-
import numpy as np

# サイズksizeのガウシアアンフィルタのカーネルを計算
def gaussian_kernel(ksize=3):
    combs = [1]

    for i in range(1, ksize):
        ratio = (ksize-i)/(i)
        combs.append(combs[-1]*ratio)

    combs = np.array(combs).reshape(1,ksize)/(2**(ksize-1))
    return combs.T.dot(combs)


def main():
    print(gaussian_kernel(3))

#[[ 0.0625  0.125   0.0625]
# [ 0.125   0.25    0.125 ]
# [ 0.0625  0.125   0.0625]]

if __name__ == "__main__":
    main()

■参考文献
行列による畳み込みフィルタリング編 ~Python画像処理の再発明家~

おすすめ記事

Python版OpenCV入門 サンプル集
Python入門 サンプル集
NumPy入門 サンプル集

この記事を書いた人
西住技研

プログラミング言語「Python」を研究、仕事、趣味でデータ分析や作業自動化などに活用してきたノウハウを情報発信しています。
筆者の詳しいプロフィールやお問合せはこちらのページまで。
YoutubeX(旧Twitter)でも情報発信中です!

西住技研をフォローする
Python基礎

コメント