ruby-filter-gaussian
概要
ガウシアンフィルターの Ruby 拡張。データが複数の場合は並列計算を行うため高速に計算されます。
基本的には、 https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.gaussian_filter1d.html
と同じです。
- フィルターの標準偏差に対してデータが小さい場合は計算できません。
- 実装が異なるためか Python のライブラリと比較すると丸目誤差が存在する場合があります。誤差の大きさは 10^(-15) 程度です。
インストール
GitHub から、ruby-filter-gaussian
をインストールするには以下のコマンドを実行します。
gem install specific_install
gem specific_install -l himeyama/ruby-filter-gaussian
Gemfile に記述する場合は以下のようにして bundle
。
gem "gaussian-filter", github: "himeyama/ruby-filter-gaussian.git", branch: :main
使用法
Gaussian.filter1d(ary, sd) -> Array
データへガウシアンフィルター処理を行います。
`ary` の大きさが1の場合、1次元配列が返ります。
`ary` の大きさが2以上で `sd` が数値の場合は全てのデーターで `sd` が適応され、
`sd` が配列の場合は各データのインデックスに対応します。
- [PARAM] ary:
- 一次元のデータ
- [PARAM] sd:
- ガウシアンフィルターの標準偏差。
require "Gaussian"
Gaussian.filter1d [1, 2, 3, 4, 5], 1
Gaussian.filter1d [[1, 2, 3, 4, 5], [3, 2, 3, 4, 1]], 1
Gaussian.filter1d [[1, 2, 3, 4, 5], [1, 2, 3, 4, 5]], [1, 0.5]