public static Bitmap MatchHistogram(Bitmap sourceImage, Bitmap referenceImage) { ByteRgbValues sourceRgb = Conversion.ColorImageToByteRgb(sourceImage); ByteRgbValues referenceRgb = Conversion.ColorImageToByteRgb(referenceImage); ImageMatrix sourceRed = sourceRgb.Red; ImageMatrix referenceRed = referenceRgb.Red; ImageMatrix sourceGreen = sourceRgb.Green; ImageMatrix referenceGreen = referenceRgb.Green; ImageMatrix sourceBlue = sourceRgb.Blue; ImageMatrix referenceBlue = referenceRgb.Blue; ImageMatrix resultRed = MatchHistogram(sourceRed, referenceRed); ImageMatrix resultGreen = MatchHistogram(sourceGreen, referenceGreen); ImageMatrix resultBlue = MatchHistogram(sourceBlue, referenceBlue); ByteRgbValues newValues = new ByteRgbValues(resultRed, resultGreen, resultBlue); return(Conversion.ByteRgbToColorImage(newValues)); }