『OpenCVによる画像処理入門』の続き。
4章~5章まとめ
デジタル画像と配列
画像のデジタル化
フィルム式カメラの撮影データ(フィルム)は、光の強さに応じて変色する感光剤によって記録されたアナログデータ。
アナログデータをデジタル化する処理は、主に次のステップで行われる。
標本化
元の画像の領域を、横幅方向にwidth個、縦幅方向にheight個に分割すること。
分割された領域を画素またはピクセル、width×heightを解像度(resolution)という。
量子化
各画素の値を整数値に変換すること。
通常8bitで表現されることが多く、0が最も暗く、255が最も明るい。
各画素のbit数のことをbit深度という。
PGM形式、PPM形式の画像フォーマット
PGM形式・PPM形式は、データ形式が単純であり、テキストエディタで編集可能であるため、画像処理を勉強するのに便利なフォーマット。PGM形式がグレースケール画像なのに対して、PPM形式は3ピクセルカラー画像で表現できる。
練習問題はこのページに記載。
デジタル画像と配列
コンピュータで画像処理するためには、ファイルやカメラから画像を読み込み、プログラムから画素値を直接読み書きする必要がある。画素値の情報は配列として扱われることがほとんど。
練習問題はこのページに記載。
Matクラス
OpenCVでは画像データをMatというクラスで主に扱う。
Matクラスの代表的なメンバ変数とメンバ関数
メンバ変数・関数 | 意味 |
---|---|
cols | 画像の幅 |
rows | 画像の高さ |
data | 画像データへのポインタ |
depth() | bit深度を取得する |
channels() | チャンネル数を取得する |
type() | データ型を取得する |
step | 画像1行分のbyte数 |
画像形式と色空間
画像の形式
画像をファイル[※]として保存する方式は、大まかに3種類ある。
方式 | 代表例 |
---|---|
RGM3原色の画素値をそのまま保存する方式 | BMP |
元の画素値の情報を圧縮して元の情報を回復できる状態で保存する方式 | TIFF PNG |
元の画素値の情報を圧縮して元の情報を回復できない状態で保存する方式 | JPEG |
色数(bit深度)
BMP:モノクロ2階調、24bit
PNG:24bit、48bit
JPEG:24bit
色空間
BMP:RGB
PNG:RGB、グレースケール
JPEG:RGB、CMYK、TCbCr、グレースケール
bit深度
ピクセル毎のビット数のことをbit深度という。
例えば1bit画像(bit深度が1の画像)とは、各画素に1bit(黒or白)の情報を割り当てた画像であり、
24bit画像とは、各画素のR、G、Bそれぞれに8bit(1byte)の情報を割り当てた画像である。
色空間
RGB空間
RGB空間とは、赤、緑、青の三色を組み合わせて色彩を表現する方法のこと。
YUV色空間、YCbCr色空間
輝度信号Yと色差信号U(またはCb)とV(またはCr)で表現される色空間。
YUV空間はアナログビデオ信号用の色空間で、YCbCr空間はデジタル信号用の色空間。
HSV空間
色彩の情報を、色相、彩度、明度によって表現する。
明るさを変えずに、色だけを抽出するような処理に向いている。
色空間の変換については省略。