Rest Term

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しているだけなのでそんなに品質は良くないかも。

あわせて読む:

 

Tags: , ,

Comments: 2

Leave a reply »

 
  • [Blender]Symmetric Nearest Neighbour in Blender Node

    Rest TermさんでSymmetric Nearest Neighbourが楽しげだったのでBlenderのノードで組んでみた。 こんなノード 使用前 使用後 半径1でやってるのでそんなに強烈にはかからない。 あと、ノードとか…

     
     
     
  • hey this is a very interesting article!

     
     
     
  • Leave a Reply
     
    Your gravatar
    Your Name