/// <summary> /// Loops through all the pixels and converts them to ycbcr /// </summary> public void SplitBytesIntoColorSpaces() { if (_imageIsSplit) { return; } for (int x = 0; x < LeftImageBitmap.Width; x++) { //var innerlist = new List<Ycbcr>(); List <float> innerY = new List <float>(); List <float> innerCr = new List <float>(); List <float> innerCb = new List <float>(); for (int y = 0; y < LeftImageBitmap.Height; y++) { Rgb color = ToRgb(LeftImageBitmap.GetPixel(x, y)); //innerlist.Add(RgbtoYCbCr(color)); innerY.Add(RgbtoYCbCrWorking(color).Y); innerCr.Add(RgbtoYCbCrWorking(color).Cr); innerCb.Add(RgbtoYCbCrWorking(color).Cb); } //ChromeList.Add(innerlist); LumList.Add(innerY); CrList.Add(innerCb); CbList.Add(innerCr); } _imageIsSplit = true; }
/// <summary> /// Puts data from ColorList array onto the LeftImageBitmap /// </summary> private void ColorListToLeftBitmap() { int i = 0; for (int x = 0; x < LeftImageBitmap.Width; x++) { for (int y = 0; y < LeftImageBitmap.Height; y++) { if (i < ColorList.Count) { LeftImageBitmap.SetPixel(x, y, ColorList[i]); } i++; } } }