Symmetric Nearest Neighbor

すこし落ち着いてきたので久しぶりにFlashを。

snn

今回はSymmetric Nearest Neighbor (SNN)という手法を画像に適用します。
シンメトリック ニアレスト ネイバー。訳すと対称最近傍法。
画素値の差の絶対値を “距離” として、その距離が近い画素の値を選んでいきます。
対称としているのは注目画素に対して対称方向の位置にある2つの画素を参照するからです。
つまり、
1 2 3
4 5 6
7 8 9
とあって5が注目画素なら、1と9、2と8、3と7、4と6… の位置の画素を参照し、
注目画素との距離が近い方の画素の値を採用します。

メディアンフィルタやKuwaharaフィルタと同様にエッジを残したまま画像をぼかしますが、
両者より高品質な結果が得られることが多い手法で、写真が絵画っぽくなってくれます。

・ソースコード

少し冗長ですがアルゴリズムがわかりやすいように書きました。
画像境界外を参照したときはbreakしているだけなのでそんなに品質は良くないかも。

あわせて読む:

2 Thoughts

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です