「C++/画像処理入門/1.画像処理の基礎の基礎/画像の種類と構造」の編集履歴(バックアップ)一覧に戻る

C++/画像処理入門/1.画像処理の基礎の基礎/画像の種類と構造 - (2009/07/28 (火) 21:44:14) のソース

#contents
----
* 画像の種類
※ 画像処理入門者は、「画像の種類」は読み飛ばして構いません。あんまり最初から小難しい話をするとイヤになるので。
コンピュータ上で扱う画像の形式には、ベクタ画像とラスタ画像の2種類がありますが、このサイトで扱う画像処理は、全てラスタ画像を対象としてます。
これ以降、単に「画像」と言った場合にはこのラスタ画像を指すものとします。

** ベクタ画像 (Vector Image) とは
直線や曲線といった幾何情報をデータとして保持している形式です。
そのため、コンピュータ上で描かれたグラフィクスを保存するには向いていますが、カメラなどで撮影された複雑な風景画などを保存するには不向きです。
幾何情報を元に描画するため、拡大/縮小しても画像が乱れず綺麗に表示されるという特徴があります。
詳細は[[ベクターイメージ (Wikipedia)>http://ja.wikipedia.org/wiki/%E3%83%99%E3%82%AF%E3%82%BF%E3%83%BC%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8]]を参照。

** ラスタ (Laster Image) 画像とは
画像を細かい点の集まりとして保持している形式です。
bmp画像やjpg画像がこれに当たります。
詳細は[[ラスターイメージ (Wikipedia)>http://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%B9%E3%82%BF%E3%83%BC%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8]]を参照。
----

* 画像の構造
一言で画像の構造と言っても、いろいろありますが、ここでは概念的な構造を示すことにします。
画像処理ライブラリを使う場合、ほとんどの場合はここで示す構造を理解していれば事足りるはずです。

まず、理解しやすいところから見ていきましょう。
下記に示す画像は、レナという、まぁ画像処理関連の論文を読んだことのある人にはお馴染みの画像です。
※ 余談ですが、この元画像は、プレイボーイという雑誌から切り抜かれたポルノ画像です([[レナ (Wikipedia)>http://ja.wikipedia.org/wiki/%E3%83%AC%E3%83%8A_%28%E7%94%BB%E5%83%8F%E3%83%87%E3%83%BC%E3%82%BF%29]]を参照)。
元は[[こんな>http://www25.atwiki.jp/guru?cmd=upload&act=open&pageid=68&file=lena_all.jpg]]画像だったようです(※ヌード画像注意)。

#center() {
#image(lena.png)
Fig. 1.1 画像の構造
}

ご覧のように、拡大すると、マス目上の色が敷き詰められていることが分かります(※ラスタ画像の特徴です)。
このマス目ひとつひとつをピクセル (Pixel) と呼んでいます。
この画像は横に256個のピクセル、縦に256個のピクセルが敷き詰められているため、大きさは 256×256 [pixel] などと言います。

** 色空間 (Color Space)
*** RGB
一般的に、コンピュータ上で色を表すときはRGB色空間を用いることが多いです。
RGB色空間とは、それぞれ赤 (Red)、緑 (Green)、青 (Blue)の3つの成分を混ぜ合わせて色を表現する方法で、それぞれの成分の強さを数値で(座標で)指定することにより黄色や紫色など、様々な色を表現することができます。
この3色は光の3原色と呼ばれ、この混ぜ合わせによって人間の目が知覚できるほぼ全ての色を表現できます(厳密には全ての色ではありません)。
詳細は[[RGB (Wikipedia)>http://ja.wikipedia.org/wiki/RGB]]を参照。

*** グレースケール (Gray Scale)
また、画像処理を行う場合には、グレースケールを用いることが多いです。
グレースケールとは、白黒写真みたいなやつで、色情報を含んでおらず、白と黒の濃淡だけで画像を表現します。
グレースケールは厳密には色空間ではありませんが、今の段階では色空間の1種だと思っておいても問題ありません。

#center() {
#image(gray_gradation.jpg)
Fig. 1.2 グレースケール画像の色空間
}

#center() {
#image(lena_gray_scale.jpg)
Fig. 1.3 グレースケール画像の例
}

*** その他の色空間
色空間はRGBやグレースケールのみではなく、HSVやYCbCr、L*a*b*など様々なものがあります。
ここでは詳述しませんが、必要になったらその都度説明していきます。
詳細は[[色空間 (Wikipedia)>http://ja.wikipedia.org/wiki/%E8%89%B2%E7%A9%BA%E9%96%93]]を参照。

** ビット深度 (Bit Deapth)
詳細は[[ビット深度 (Wikipedia)>http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%83%E3%83%88%E6%B7%B1%E5%BA%A6]]を参照。
----