モーションブラーフィルタ; Motion Blur Filter
概要
モーションブラーフィルタは平滑フィルタの一つで、画像を特定方向にぼかすことができる。
空間フィルタについてはこちらを参照のこと。
重み
ぼかし方向が単位ベクトル\(\boldsymbol{s} =(s_x, s_y)^T\)であるときモーションブラーフィルタにおける重み\(w_{i j}\)は以下で与えられる。
フィルタサイズが大きいほど単位ベクトル方向の平滑が大きくなり、\(\sigma \)が大きいほど単位ベクトルに直交する方向の平滑が大きくなる。
\(\quad \displaystyle w_{i j} = exp \left( -\frac{ (i s_y - j s_x)^2}{2 \sigma} \right) \)
結果
ソースコード
GraphicRGB src_graph, dst_graph;
ImageIO.Read(out src_graph, "graph/pepper.png");
double sx = 0.6, sy = 0.8;
FilterAverage filter = new FilterAverage(5, (x, y) => Math.Exp(-(x * sy - y * sx) * (x * sy - y * sx) / 2));
dst_graph = Filtering.SmoothFiltering(src_graph, filter);
ImageIO.Write(dst_graph, "graph/pepper_motionblur.png");
関連項目
RGB空間
RGBグラフィックおよびその入出力
フィルタ
グレースケール
ガウシアンフィルタ
バイラテラルフィルタ
微分フィルタ
ソーベルフィルタ
鮮鋭化フィルタ