private static CieLAB TranFormImageToCieLAB(Image image, IlluminantItem _userIlluminant) { var averageRGB = new AverageRGB(image); var XYZ = new XYZ(averageRGB); var cieLAB = new CieLAB(XYZ, _userIlluminant); return(cieLAB); }
public XYZ(AverageRGB averageRGB) { var rgb = new Dictionary <String, Double>() { { "Red", averageRGB.AverageRed }, { "Green", averageRGB.AverageGreen }, { "Blue", averageRGB.AverageBlue } }; foreach (var color in rgb) { var colorValue = Convert.ToDouble(color.Value / 225); colorValue = colorValue > 0.04045 ? Math.Pow((colorValue + 0.055) / 1.055, 2.4) : colorValue / 12.92; colorValue = colorValue * 100; } _x = rgb["Red"] * 0.4124 + rgb["Green"] * 0.3576 + rgb["Blue"] * 0.1805; _y = rgb["Red"] * 0.2126 + rgb["Green"] * 0.7152 + rgb["Blue"] * 0.0722; _z = rgb["Red"] * 0.0193 + rgb["Green"] * 0.1192 + rgb["Blue"] * 0.9505; }