この記事では、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画像処理の再発明家~


コメント