• ベストアンサー

平滑化フィルタのエッジ処理

平滑化フィルタのエッジの計算方法について教えてください。 たとえば3×3の以下のような平滑化フィルタを使ったとします。 1/9|1/9|1/9 1/9|1/9|1/9 1/9|1/9|1/9 このフィルタをN×Mの大きさのimageの全画素に処理をしたとすると、 エッジでない画素は、処理をしたい画素を含む周りの9個の画素それぞれに1/9をかけて、その和をとればいいと思うのですが、エッジの画素は、周りには画素が3個とか5個とかしかなく、上で定義したフィルタを適用できません。 エッジの画素にはどのような処理をすればいいのでしょうか? 御存じの方がいらしたら、教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

色々ある。 ・ハミ出した部分を「白」として処理する。 ・ハミ出した部分を「黒」として処理する。 ・ハミ出した部分を「3×3の中央の画素と同じ色」として処理する。 ・上にハミ出した画素はその画素の1つ下、下にハミ出した画素はその画素の1つ上、右にハミ出した画素はその画素の1つ左、左にハミ出した画素はその画素の1つ右、コーナーの斜め外にハミ出した画素はコーナーの画素を使う。 ・画像の上下、左右をループさせる。右にハミ出したら画像の反対側の左端の画素を使うなど。 ・エッジ部分の画素はフィルターを適用しない。 どれを使うかは「状況」によるので、これが最適、これが普通、と言う物は存在しません。 良くやるのが「必要なサイズよりも少し大きめに画像をサンプリングしておき、フィルターをかけたら、必要な部分だけを切り抜いて、エッジに近くてちゃんとフィルターが作用してない可能性がある部分は捨てちゃう」って方法。この方法なら「フィルターを適用する事によって、画像外から侵食してきた変なデータ」を排除出来ます。