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