2006 年 1 月 30 日 22 時 24 分

グレースケール


このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。


[写真] [写真] [写真]


今日はグレースケール。

画像から色彩情報を除き、灰色の階調で表現したものである。
一般的には白から黒までの色彩のない 256 階調で表現され、
画像の明るさを抽出するのに利用されることもある。

グレースケールの計算方法は色々あるが、
今回は、最も多くのアプリが実装している方法にしてみよう。

単純に考えた場合、R と G と B の平均値でもよさそうだが、
今回の計算はそれとは少し異なる。では、どう違うのか。

赤 1 色の画像、緑 1 色の画像、青 1 色の画像。
それぞれの色を見比べてみると、
緑の絵は、明るいと思えるが、
青の絵はどちらかというと暗く見える。

人間の目は、色によって明るさの感じ方が異なるのだ。
この原理を基にして、色ごとの明るさの比率を考えると、
赤 0.299, 緑 0.687, 青 0.114 位と考えられている。

この計算もピクセル内で完結しているが、
今までと異なり、異なる色間での計算処理が入る。
計算前のピクセルの RGB 値を、Rs, Gs, Bs、
計算後のピクセルの RGB 値を、Rd, Gd, Bd とし、
グレースケール値を G とすると、以下の計算で求まる。

G = Rs * 0.299 + Gs * 0.587 + Bs * 0.114
Rd = G
Gd = G
Bd = G

グレースケールを自然に扱える画像形式の場合は、
RGB を使わなくても、1 チャンネルだけで表現できるので、
単純計算で、元の 1/3 のデータ量で表現できる。

BMP でも、8 ビット表現を利用して、
0~255 の灰色階調をカラーテーブルに登録すれば、
保存サイズを減らすことはできる。



Copyright (c) 1994-2007 Project Loafer. All rights reserved.