画像処理における空間フィルタリングと畳み込み演算(マスク演算)の計算方法についてまとめました。
【はじめに】空間フィルタリングとは
空間フィルタリング (Spatial filtering) とは、入力画像の注目する画素値だけでなく、その近傍(周囲)にある画素値も利用し、出力画像の画素値を計算する処理です。
この計算のことを畳み込み演算、もしくはマスク演算といいます。
動画解説版
【計算方法】畳み込み演算
空間フィルタリングでは、畳み込み演算により出力画像を求めます。
入力画像とカーネル
が次のように与えられたします。
(1)
このとき、出力画像の端以外の画素値は次のように計算します。
■注目画素
(2)
■注目画素
(3)
■注目画素
(4)
■注目画素
(5)
パラメータ | 説明 |
---|---|
カーネル |
近傍の画素数( |
カーネル |
近傍にある画素の重み(目的や用途に応じて変える) |
定式化
カーネルサイズがの場合、畳み込み演算の計算を定式化すると次のようになります。
(6)
端の画素の処理
入力画像の端の画素を注目画素とした時は、近傍の画素数が不足します。
例えば、に隣接する画素は
,
,
の3つしかありません。
その場合の処理方法は特に定義されていないため、自分で定義します。
色々なやり方が考えられますが、簡単化のため今回は次のように処理します。
ケース | 処理方法 |
---|---|
輪郭抽出に使う場合 | 出力画像の端の画素値は全て0にする |
平滑化処理に使う場合 | 入力画像の画素値をそのまま出力画像の画素値にする |
【計算例】
入力画像とカーネル
が次のように与えられたとき、出力画像
を求めよ。
(7)
解説
入力画像とカーネル
を畳み込み演算してやると
(8)
(9)
(10)
(11)
となります。今回、端の画素値は全て0にすることにします。
(12)
すると、出力画像は次のようになります。
(13)
– | 関連記事 |
---|---|
1 | 【画像処理入門】アルゴリズム&プログラミング |
コメント