【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入門 サンプル集

コメント