2012年4月4日水曜日

BucketMedian

ここ一週間ほど基本的なアルゴリズムとかを勉強していたらなにか書きたくなったので、基本中の基本なメディアンフィルタを書いてみました。

BucketMedian-0.1.0.zip
https://github.com/chikuzen/BucketMedian/

メディアンを求めるのにバケツソートをちょっと応用してみましたが、あまり速くないですな。

使い方:
AVISource("herpderp.avi")
BucketMedian(clip c, int "radius", int "min", int "max")
clip:
 planar format(YV12,YV16,YV24,YV411,Y8)のみ対応。
 処理は輝度のみで、色差はまったくいじりません。

radius (1~255, デフォルト1): 参照する近傍ピクセルの半径。
 処理するピクセルを中心として、1だったら3x3、nだったら(2n+1)x(2n+1)の
近傍ピクセルのメディアンを求め、入れ替えます。
 大きくすればするほどボケて、遅くなります。

min (0~254, デフォルト0): しきい値の下限。
 これよりもピクセルの輝度が低い場合、そのピクセルはメディアンを求めず、そのままコピーします。

max (1から255, デフォルト255): しきい値の上限。
 これよりもピクセルの輝度が高い場合、そのピクセルはメディアンを求めず、そのままコピーします。

必要なもの:
 avisynth2.5.8以降
 Microsoft Visual C++ 2010 再頒布可能パッケージ

0 件のコメント:

コメントを投稿