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));
        }