Blur / Sharpen

Blur (clip, float amount)
Blur (clip, float amountH, float amountV, bool MMX)
Sharpen (clip, float amount)
Sharpen (clip, float amountH, float amountV, bool MMX)

これは、シンプルな 3x3 カーネルのぼかし(blur)フィルタです。Blur で指定可能な実引数の最大値は約 1.58 で、これは (1/3, 1/3, 1/3) カーネルに相当します。1.0 という値は、(1/4, 1/2, 1/4) カーネルになります。もし大きな半径のガウスぼかしが必要なら、いくつかの Blur(1.0) のコピーを連鎖(chain)することをお薦めします。(パスカルの三角形*1を覚えている人はいますか?) 

Blur に対する負の実引数は、実は画像をシャープ(sharpen)にします。現に Sharpen(n) は、Blur(-n) の単なる別名なのです。Blur で指定可能な実引数の最小値は -1.0 であり、すなわち Sharpen の最大値は 1.0 です。 

垂直方向と水平方向の量(amount)を個別に設定するために、2 つの実引数を使用することができます。このように、たとえばインターレースのラインをブレンドするために、Blur(0,1) を使って垂直方向のみにフィルタをかけることができます。デフォルトでは、amountV=amountH です。

MMX ルーチンに関しては、計算における完全な 8 ビット精度の欠如という既知の問題があります。これは、出力される画像にバンディング*2を引き起こすことがあります。もし心配なら、速度的には劣るものの、より正確な C++ ルーチンを使用するために、MMX オプションを False に設定してください。

原文 Date: 2006/12/03 11:37:04
日本語訳 $Date: 2008/07/19 03:50:15 $