2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

scipyのガウシアンフィルタについて

Last updated at Posted at 2021-01-05

scipy.ndimage.gaussian_filter [reference]

usage.py
from scipy.ndimage import gaussian_filter
blur_array = gaussian_filter(input, sigma)

v1.5.4時点で引数はこんな感じ.

引数 説明 デフォルト
input array形式ならOK. 必須
sigma ガウス分布の標準偏差,ぼかし具合.軸ごとに設定可能.
(例) 3Dなら sigma=[3,6,9]
必須
order 微分階数,1以上ならフィルタをorder次微分.軸ごとに設定可能. 0
output 出力のデータ形式. 入力と同じ
mode フィルタを端で適用するときの挙動,後述.
(種類) ‘reflect’ ``‘constant’``‘nearest’ ``‘mirror’``‘wrap’
‘reflect’
cval 入力配列外の値.mode=‘constant’のとき適用. 0.0
truncate フィルタの適用範囲.フィルタ半径=int(sigma*truncate+0.5) 4.0

※ カラー画像(HEGHT, WIDTH, 3)を入力すると,3番目の軸(カラーチャネル方向)でも平滑化されるので sigma=[n,n,0] とする必要がある.画像形式ならcv2skimageが楽.逆にscipyは何次元のテンソルでも適用可能なのがメリット(?)

sigmaについて

・スカラー値だと全部の軸で同じ$\sigma$.
・シーケンス(要素数=入力次元)だと各軸ごとに$\sigma$指定

結果例

カラー画像
色も平滑化
カラー画像 グレースケール画像 X方向のみ平滑化 Y方向のみ平滑化

modeについて

・エッジ(配列の端)より外の値をどう処理するか.
・デフォルトは‘reflect’
・入力シーケンスをabcdとしたときの挙動を表に記載.

mode= 説明 配列外 左 入力配列 配列外 右
‘reflect’ エッジを軸に反射.(エッジも反射) d c b a a b c d d c b a
‘constant’ 定数cval,デフォルトは0 k k k k a b c d k k k k
‘nearest’ 最も近いエッジの値. a a a a a b c d d d d d
‘mirror’ エッジを軸に反射.(エッジは反射しない) d c b a b c d c b a
‘wrap’ 反対側のエッジに回り込む a b c d a b c d a b c d

truncateについて

・平滑化を行う範囲
・デフォルトは4
・コードを確認すると,おそらくフィルタ半径=int(sigma*truncate+0.5) [code]

結果例

truncateは4以上だとほとんど変わらないので,特にイジる必要はなさそう.
mandrill.gif

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?