>> Rによる画像処理プログラミング入門:目次

画像処理とは

画像処理 (Image processing) とは、画像に対して何らかの処理を施すことです。
処理の結果(出力)として画像を得る場合もあれば、何らかの記述を得る場合もあります。前者の例としては写真の明るさやコントラストを調整して見栄えが良い画像に変えることなどがあり(Instagramのフィルターなどが代表例でしょう)、後者の例としては平均輝度など画像の要約統計量を得ることなどがあります。
また、画像に写ったものが何であるかを識別する、といった事例も画像処理の応用例として挙げられますが、これは分野としてはコンピュータビジョンと呼ばれることが多いでしょう。

心理学研究と画像処理

心理学の研究においても画像処理技術は画像データの前処理や分析、また認知のモデルとして幅広く用いられています。

刺激画像の前処理の例:大量にある画像の輝度やコントラストを調整したり、画像のサイズを同じにするといった作業を自動で行う。画像のノイズ除去や輝度の統制、背景領域の除去など。

刺激画像を作成する例:写真画像とそれを位相ランダマイズした画像を作成する。顔画像を周波数成分ごとに分離した画像を作成する。写真から線画化された画像を作るなど。

心理データの分析に利用する例:美的評価の高い写真に共通する画像要因を探る。物体や風景や質感のカテゴリ認識に関与する画像特徴を探るなど。

認知メカニズムへの示唆:機械がどのように画像を認識するか(コンピュータビジョン)を知ることで、バイオロジカルなビジョンの特質をより明示的に理解できる。脳の階層的な視覚情報処理や、V1の情報表現がなぜそのようにできているのかについての計算論的な示唆を得る(これは画像処理というよりは機械学習寄りの話ですが)。実例としては顕著性マップモデルや質感知覚など。

実用的なツールとしても、心理研究の理論的深化の手立てとしても、画像処理の技術と知見には価値があると思います。

デジタル画像について

私たちが普段パソコンやスマホで扱っている画像や写真、つまりデジタル画像は、画素 (pixel) の集まりとして表現されています。それぞれのピクセルは画素値を持ち、多くの場合に1バイト(8ビット)で表現できる0から255の範囲の整数値を取っています。
グレースケール画像の場合であれば画素値はそのピクセルの明るさに対応するので、0であれば真っ黒、増えるに従って明るくなって行き、255で最大の明るさ、つまり真っ白を表現します。
画像の大きさに対応するだけのピクセルを縦横に並べた画素値の二次元配列としてグレースケール画像は表現されます。

カラー画像の場合は各ピクセルはRGB(赤緑青)の3つの画素値を持ちます。従って、R成分・G成分・B成分を表現する3個の二次元配列を用意することでカラー画像は表現できます。また、透過情報(透明度・アルファ情報)を持つ画像の場合はさらにA成分を持つことになります。


デジタル画像のピクセルの座標系としては左上を原点としてものが採用されることが多いように思います(言語やライブラリに依存する)。そして、プログラミングにおいては、画像データは多次元の数値配列として格納されることが多いです。
横600px縦400pxのカラー画像の場合、600 x 400 x 3の三次元配列としてデータは表現されます。画像の変数名をPとして、例えばx座標が10でy座標が20の位置にあるBlue成分の画素値を得たい場合には P[10,20,3] といったやり方で値を取得できることになります。