2006 年 1 月 28 日 23 時 17 分

コントラスト


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


[写真] [写真]


今日はコントラストの調整。
画像を扱うアプリケーションの定番機能でもある。

コントラストは、明暗の対比であり
コントラストを高めるということは、
明るいものをより明るく、
暗いものをより暗くするということである。

明るいものと暗いものを分けるのは、
表現できる範囲の中間値を 128 とし、
128 からの差を増幅することに等しい。

コントラストを 2 倍にする場合で例を挙げよう。

値 170 のピクセルは、128 から見ると、+42 である。
これを +84 に増幅し、結果的に 202 となる。
値 100 のピクセルは、128 から見ると、-28 である。
これを -56 に増幅し、結果的に 44 となる。

この計算もピクセル内で完結している。
計算前のピクセルの RGB 値を、Rs, Gs, Bs、
計算後のピクセルの RGB 値を、Rd, Gd, Bd とし、
コントラストの係数を C とすると、以下の計算で求まる。

Rd = adjust((Rs - 128) * C + 128)
Gd = adjust((Gs - 128) * C + 128)
Bd = adjust((Bs - 128) * C + 128)

コントラストを高くする場合、値を計算した結果、
0 ~ 255 の範囲内に収まらなくなる場合もある。
この場合は、範囲内に収まるように飽和処理が必要となる。
0 未満は 0、255 超過は 255 にするってことだ。
上では、adjust と言う関数で処理をしている。



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