・YCbCrとは
パソコンやデジカメ名のデジタル機器では、
すべての情報は0と1の二進数(bit)で表されます。
この時、カラー画像は光の三原色のR,G,Bで表すことが一般的です。
R,G,Bのそれぞれを0-255の256段階の明るさで表します。
256 = 2^8なので、8bit×3の24bitで一つの画素を表すことが出来ます。
8bit = 1Byteなので、画像の位置画素は3Byteです。
もし、2400万画素のデジカメの画像だと、
単純に計算すると7200万Byte≒72MByteになります。
実際はこれよりもファイルサイズが小さい理由はjpeg圧縮の項目を
読んでください。
ここまで説明してきた画像の表し方は
RGBです。
(R,G,B)=(0,0,0)なら黒い画像になるし、
(R,G,B)=(255,255,255)なら白い画像になるし、
(R,G,B)=(255,0,0)なら真っ赤な画像になります。
しかし、この画像の表し方は人間の感覚に合いません。
(R,G,B)=(128,64,219)
この色がどういった色なのかすぐに理解するのは難しい。
画像処理をする場合、
彩度をもっと高くして鮮やかにしたい、
もっと明るめにしたい。
こういった要求が上がります。
色を扱う仕事をしているとHSV空間で色を表すと
人間の感覚に直感的です。
Hue 色相
Saturation 彩度
Value 明度
この三つです。
また、コンピュータで処理する場合
画像処理の形式としては
YUVやYCbCrもあります。
Yが輝度、UV,CbCrが色差を表します。
Yが0のときは、真っ黒、
Yが255の時は真っ白になります。
色差は概念が分かりにくいですが、
このふたつの値で色が表せるという意味と考えておけば大丈夫。
YUVとYCbCrの違いは正規化されたときの値の違いだけで
基本的には同じです。
CbはChroma(色度)blue(青)
CrはChroma(色度)red(赤)
の略だと思われる。
このYCbCr形式で色を扱うと、
明るくしたい、彩度を高めたい、等の計算が楽になります。
上の図のように二次元平面で理解できるので、
二次元行列演算で簡単に計算が可能になります。
RGB2YCbCrの変換は以下
Y = 0.299 × R + 0.587 × G + 0.114 × B
Cb = -0.168736 × R - 0.331264 × G + 0.5 × B
Cr = 0.5 × R - 0.418688 × G - 0.081312 × B
YCbCr2RGBの変換は以下
R = Y + 1.402 × Cr
G = Y - 0.344136 × Cb - 0.714136 × Cr
B = Y + 1.772 × Cb
(R,G,B)=(128,64,219)
こんな色でした。
« ・観覧車を長秒撮影してみる | トップページ | ・立体画像の作り方 »
「写真講座」カテゴリの記事
- ・写真編集時の周辺環境について(2024.11.13)
- ・クアッドピクセルのさらに上をいくセンサー(2024.11.02)
- ・彗星を撮った時の設定2(2024.10.30)
- ・彗星を撮った時の設定(2024.10.05)
- ・面内ブレ(ブラー)を防ぐ(2024.09.12)
コメント