1次元フィルタリング処理

10画素×10画素の画像の中で、ある走査線における画素の値が以下のようになっているとしましょう。

画素値として許されるのは、8章などで考えたのと同じく、1から9までの自然数です。

3337777777

この走査線において、左から右にかけて、画素値が上がっているのはどのあたりでしょう。

人間なら実際の明るさをみれば一目瞭然分かります。

あるいは画素値を表わす数字をながめてもわかるでしょう。

左より3番目から4番目にかけてのあたりです。

しかし機械には「一目瞭然」は期待できません。

もっと地道な処理が要求されます。

具体的には次のような処理をすれば実現できます。

各画素に対して、自分の1つ左の画素値に-1をかけ、自分の1つ右の画素値に+1をかけ、両者を足すのです。

ただし走査線の一番左では、左端の値がさらにその左にもダミーとして存在していると仮定します。

同じように走査線の一番右では、右端の値がさらにその右にもダミーとして存在していると仮定します。

すると以下のような処理結果が得られます。

0044000000

すなわち確かに左より3番目から4番目にかけてということがわかります。

もし走査線が次のようだったらどうでしょう。

6667777777

こうなると図の右上のように、明るさがさほど変わらないので、逆に人間が明るさをみても少しわかりにくいかもしれません。

しかし機械で同じ処理をすると以下の結果が得られます。

0011000000

「大きくなった度合い」が小さいので、値も1と小さいのですが、それでも大きくなったところはきちんと示されています。

大きくなる場所が2箇所あっても大丈夫です。

たとえば以下の走査線です

4446666777

これは図の右下の場合ですが、同じ処理をすると以下の結果が得られます。

0022001100

以下のような場合はどうでしょう。

逆に左から右にかけて、画素値が減っている場合です。

5554444444

同じ処理をすると以下の結果が得られます。

00-1-1000000

すなわち減っているのだからマイナスというわけです。

「余計なことはしないでよろしい、増えていないなら減ろうが何だろうが0にしてくれ」と言いたい人がいるかもしれませんが、残念ながらそういう融通の利く処理は、さらに複雑になってしまいます。

ともあれこのように、走査線上の近いところの画素値を足したり引いたりする(実際にはある定数をかけて足したり引いたりも可)処理を、1次元の線形フィルタリング処理といいます。

ただし線形が基本中の基本で実際によく使われるので、「線形」という言葉はしばしば省略されます。

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

« 輝度情報と色情報の分離 | ホーム | 2次元フィルタリング処理 »

このページの先頭へ