静止画処理の定式化

画像処理をデジタル機器で行うためには、(入力となる)画像がデジタル的に表現されいるだけでなく、その処理内容が明示されている必要があります。

処理内容はプログラムやハードウェアという形で表現されます。

まずはこの処理の表現について、静止画で考えましょう。

前章で述べたようにここではビットマップ的に表現されたデータを扱うことにします。

画像を現わす独立変数をxとyとしましょう。

どちらも離散値です。

すると(x, y)に対応する場所の画素値(明るさなど)はInput(x, y)と表わされます。

もっともカラー画像の場合、画素値は3つあるのが普通なので、その場合はその3つの値を並べた、いわばベクトル量となります。

静止画の画像変換処理というのは、いわばこのInput(x, y)という画素値列をもとにして、Output(x, y)というやはり画素値列を作り出すものです。

数学的に言い直すと、Input(x, y)の関数としてOutput(x, y)を計算するものです。

ですからその関数関係がわかっており、プログラムなどで表現されていなければなりません。

最も単純な関数関係は、Output(x, y)=Input(x, y)というもので、これは入力静止画をそのまま出力とするものです。

両者には何の変化もありませんが、これも画像処理の1つです。

またOutput(x, y)=-Input(x, y)とすると、画素値の定義の仕方にもよりますが、いわゆるネガ画像を作ったことになります。

Output(x, y)=Input(x-1, y)とすると、静止画を1画素分だけ右にずらすような処理になります。

ただし画像の左端は無視します。

Output(x, y)=Input(x, y-1)なら、下にずらす処理です。

またxの値が0, 1, ... , xMAXを取るとして、Output(x, y)=Input(xMAX-x, y)とすると、左右をひっくり返す処理です。

実際にはより複雑な関数関係が多いのですが、とにかく二次元数列Input(x, y)の関数として二次元数列Output(x, y)が定めることが、二次元の画像変換といえます。

静止画を解釈する処理というのは、このInput(x, y)をもとに、xやyに関係ない単独量を出力するものです。

たとえば「画面のどこかに自動車らしき物体が少なくとも1台あれば"1"を出力し、そうでなければ"0"を出力せよ」という処理です。

この出力も、入力の関数といえます。

適切なアルゴリズムが構築されていれば、この静止画像に対しては"1"が出力されるはずです。

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

« ビットマップ表現とベクタ表現 | ホーム | 動画処理の定式化 »

このページの先頭へ