Пример #1
0
        public static Double CompareCieLAB(Image img1, Image img2, IlluminantItem _userIlluminant)
        {
            CieLAB CieLABItem1 = TranFormImageToCieLAB(img1, _userIlluminant),
                   CieLABItem2 = TranFormImageToCieLAB(img2, _userIlluminant);

            return(CompareCieLAB(CieLABItem1, CieLABItem2));
        }
Пример #2
0
        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);
        }
Пример #3
0
        private static Double CompareCieLAB(CieLAB cieLAB1, CieLAB cieLAB2)
        {
            #region Reference

            /*
             * http://www.easyrgb.com/en/math.php - Delta E* CIE
             * Delta E* = sqrt( ( ( CIE-L*1 - CIE-L*2 ) ^ 2 )   + ( ( CIE-a*1 - CIE-a*2 ) ^ 2 ) + ( ( CIE-b*1 - CIE-b*2 ) ^ 2 ) )
             */
            #endregion

            return(Math.Sqrt(Math.Pow((cieLAB1.CieL - cieLAB2.CieL), 2) + Math.Pow((cieLAB1.CieA - cieLAB2.CieA), 2) + Math.Pow((cieLAB1.CieB - cieLAB2.CieB), 2)));
        }