ビューア開発 – バイラテラルフィルタ追加しました

投稿日: 更新日:

alpha版のダウンロード 404になってたらすいませんm(_ _)m
前々から追加追加しようと思って、初めて作ってみた。
日本語の資料がtpotさんのバイラテラルフィルタしかなくて、勉強するのが大変でした。
海外のサイトはもっとよくわかんない謎の式だらけだけど。
要約すると、バイラテラルフィルタってのは、注目画素の輝度と、フィルタ処理する時の近傍画素の輝度の差(距離)を
マイナスの係数をかけて、指数関数の中れたもの を A として。 新しいオペレータ = ( A × 普通のフィルタ処理)
新しいオペレータは、係数の合計が1になってないと思うから、正規化して計算しなくてはいけない。
あとは、この新しいオペレータを使って普通のフィルタ処理を行えばOK。
つまり2回色を参照しないといけない。1回目は輝度の距離の計算。2回目はフィルタ処理。
あと、メニューのフィルタをもうノイズ低減エッジ強調の2つにまとめてみた。
今更だけど、大きな画像(今時のデジカメサイズ)の画像処理しようとすると、
Javaがメモリ確保できないとかでエラー出るんだが^^;

一応開発PCはメモリ2Gあるのに、写真の画像処理が出来ないとか、写真補正ツールおわってる。Javaもおわってる。

起動時にメモリの量を指定することで解決(。>ω<)


2009年7月28日 追記

今色々調べてみると、バイラテラルフィルタの公式が。

あれ、できたソースコードとだいぶ違うような……。(^○^)

というか正規分布に、注目画素と周りの画素との距離(差)を利用したというか、
もともとガウシアンフィルタが正規分布を元にして作ってるから、

説明としては、「画素の色差情報[m~2+n~2]」と「画素の距離情報[(f(i,j)-f(i+m,j+n))~2]」を利用するであっていると思います。
分母に似たような式があるのは、フィルタを正規化するためです。

ちなみに正規分布はこちら。

ガウシアンフィルタのフィルタ係数を作る時に利用するのですが、
フィルタの合計は1に正規化する必要があるので、
expの外に出ている係数は計算せずにフィルタ係数を求めたあとに、正規化します。
外の係数は、次のように正規化したら消えてしまいます。
←基本形

つまり、バイラテラルフィルタを簡単に説明すると
ガウシアンフィルタに「注目画素と周りの画素との色差」の情報を加味したものです。


完成した画像処理のツールは、Javaアプレット版は、こちらから試すことが出来ます。

広告

コメントをどうぞ(承認された後に公開されます。メールアドレスの記入は自由ですが、記入した場合でも一般公開されることはありません)

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中