• ベストアンサー

6x6ぼかしマスクをかけるプログラムを作りたい。画像処理の専門書に「6

6x6ぼかしマスクをかけるプログラムを作りたい。画像処理の専門書に「62x62ピクセルの2値画像(内四方2ピクセルは余白領域)があり、それに6x6ドットのぼかしマスクを2ドットずつオーバーラップさせることで、15x15ピクセルの標本化パターンを作成する」との記述がありました。 3x3ドットによる画像のフィルタリングプログラム例は探せば見つかるのですが、偶数倍フィルターにおいてはどのように実装すればよいかがピンときません。プログラムの参考例を教えて欲しいです。

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

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

> 62ピクセルだと6や15で割り切れないので、どうやったら帳尻を合わせることができるでしょうか。  「2ドットずつオーバーラップさせる」とありますね。  最初に(0,0)を左上とする6×6の領域を処理し、次は4ドット右に移動させた(4,0)を左上とする6×6の領域を処理します。こうやって4ドットずつ移動させると前回の処理とは2ドットずつオーパーラップしていきます。15回目には(56,0)を左上とする6×6の領域を処理しますが、これの右端は62x62ピクセルの画像の右端と重なります。  こうやって右端まで行くと、今度は左端に戻って4ドット下に移動させた(0,4)を左上とする6×6の領域から同様に右に向かって処理していきます。これもひとつ前(上)の処理とは2ドットずつオーバーラップします。こうやって4ドットずつ下に移動して処理していくと、やはり15回目には(0,56)を左上とする6×6の領域から処理を始めることになり、この領域の下端は62x62ピクセルの画像の下端と重なります。  こうやって15×15回の処理をして15x15ピクセルの標本化パターンを作成するのです。

Tank2005
質問者

補足

「2ドットのオーバーラップ」の意味がようやく理解できました。丁寧な解説をありがとうございます。

その他の回答 (1)

回答No.1

別に奇数でも偶数でも変わりません。 要はマス目の数を一辺 m とした時、各画素の重みが 1/m^2 になるようにすればよいだけです。 ぼかしマスクを掛けるということは、つまり6×6の画素範囲を平均化して標本化するということですから、この6×6の範囲の各画素の値に重み 1/36 を掛けたものを36画素分合計して、これを標本値(15×15のうちの1ピクセル)とするということです。

Tank2005
質問者

補足

62ピクセルだと6や15で割り切れないので、どうやったら帳尻を合わせることができるでしょうか。

関連するQ&A