AForgeを使用して、画像をYCbCrにて変換する方法を記載します。

JPEGで保存する色は、RGBでなくYCbCrです。

RGBは Red(赤)、Green(緑)、Blue(青)で色を表現しますが、

YCbCr は Y (輝度)、Cb(青の色差)、Cr(赤の色差)で色を表現します。

RGB → YCbCr

  • Y = 0.29900×R + 0.58700×G + 0.11400×B
  • Cb = −0.16874×R − 0.33126×G + 0.50000×B
  • Cr = 0.50000×R − 0.41869×G − 0.081×B

YCbCr → RGB

  • R = Y + 1.40200×Cr
  • G = Y − 0.34414×Cb − 0.71414×Cr
  • B = Y + 1.77200×Cb
      

YCbCrLinear クラスにてYCbCrによる変換

Dim FilePath As String = "C:\work\imgsample01.jpg"
Dim img As System.Drawing.Image = System.Drawing.Image.FromFile(FilePath)

'YCbCrフィルタリング
Dim ycbcrFilter As YCbCrLinear = New YCbCrLinear()
ycbcrFilter.InY = New AForge.Range(-0.276, 0.163)
ycbcrFilter.InCb = New AForge.Range(-0.276, 0.163)
ycbcrFilter.InCr = New AForge.Range(-0.202, 0.5)
Dim ycbcrImage As Bitmap = ycbcrFilter.Apply(img)

PictureBox1.Image = ycbcrImage