Esempio n. 1
0
		public void LoadAllStartingWithShouldNotLoadDeletedDocs()
		{
			using (var store = NewRemoteDocumentStore())
			{
				var doc1 = new Abc()
				{
					Id = "abc/1",
				};
				var doc2 = new Xyz()
				{
					Id = "xyz/1"
				};


				using (var session = store.OpenSession())
				{
					session.Store(doc1);
					session.Store(doc2);
					session.SaveChanges();
				}

				using (var session = store.OpenSession())
				{
					// commenting out this call passes the test
					var testClasses = session.Advanced.Lazily.LoadStartingWith<Abc>("abc/");
					var test2Classes = session.Query<Xyz>().Customize(x => x.WaitForNonStaleResults())
					                          .Lazily().Value.ToList();

					Assert.Equal(1, testClasses.Value.Count());
					Assert.Equal(1, test2Classes.Count());
				}
			}
		}
        private void btnWPcalib_Click(object sender, EventArgs e)
        {
            double[] AdjXYZ = new double[3];
            Xyz WP = new Xyz(95.05, 100.00, 108.88); // this uses the D65 WP value
            AdjWP(roiImg, WP, AdjXYZ);

            Image<Xyz, byte> XYZimg = new Image<Xyz, byte>(sampleImg.Width, sampleImg.Height);
            CvInvoke.cvCvtColor(sampleImg, XYZimg, COLOR_CONVERSION.CV_BGR2XYZ);

            Image<Gray, byte> Ximg = new Image<Gray, byte>(sampleImg.Width, sampleImg.Height);
            Image<Gray, byte> Yimg = new Image<Gray, byte>(sampleImg.Width, sampleImg.Height);
            Image<Gray, byte> Zimg = new Image<Gray, byte>(sampleImg.Width, sampleImg.Height);
            //Image<Xyz, byte> unk = new Image<Xyz, byte>(sampleImg.Width, sampleImg.Height);
            CvInvoke.cvSplit(XYZimg, Ximg, Yimg, Zimg, IntPtr.Zero);
            Ximg._Mul(AdjXYZ[0]);
            Yimg._Mul(AdjXYZ[1]);
            Zimg._Mul(AdjXYZ[2]);
            Image<Xyz, byte> XYZimg2 = new Image<Xyz, byte>(sampleImg.Width, sampleImg.Height);
            CvInvoke.cvMerge(Ximg, Yimg, Zimg, IntPtr.Zero , XYZimg2);

            Image<Bgr, byte> wpImg = new Image<Bgr, byte>(sampleImg.Width, sampleImg.Height);

            CvInvoke.cvCvtColor(XYZimg2, wpImg, COLOR_CONVERSION.CV_XYZ2BGR);

            sampleImageBox.Image = wpImg;
        }
Esempio n. 3
0
        internal const double Kappa = 903.3; // Intent is 24389/27

        #endregion Fields

        #region Constructors

        static XyzConverter()
        {
            WhiteReference = new Xyz
            {
                X = 95.047,
                Y = 100.000,
                Z = 108.883
            };
        }
Esempio n. 4
0
 internal static IRgb ToColor(IYxy item)
 {
     var xyz = new Xyz
         {
             X = item.X * (item.Y1 / item.Y2),
             Y = item.Y1,
             Z = (1.0 - item.X - item.Y2) * (item.Y1 / item.Y2)
         };
     return xyz.ToRgb();
 }
Esempio n. 5
0
        internal static void ToColorSpace(IRgb color, ILab item)
        {
            var xyz = new Xyz();
            xyz.Initialize(color);

            var x = PivotXyz(xyz.X/RefX);
            var y = PivotXyz(xyz.Y/RefY);
            var z = PivotXyz(xyz.Z/RefZ);

            item.L = Math.Max(0,116*y - 16);
            item.A = 500*(x - y);
            item.B = 200*(y - z);
        }
Esempio n. 6
0
        internal static void ToColorSpace(IRgb color, IYxy item)
        {
            var xyz = new Xyz();
            xyz.Initialize(color);

            item.Y1 = xyz.Y;

            var xDividend = xyz.X + xyz.Y + xyz.Z;
            item.X = xDividend.BasicallyEqualTo(0) ? 0.0 : xyz.X / xDividend;

            var y2Dividend = xyz.X + xyz.Y + xyz.Z;
            item.Y2 = y2Dividend.BasicallyEqualTo(0) ? 0.0 : xyz.Y / (xyz.X + xyz.Y + xyz.Z);
        }
Esempio n. 7
0
        internal static void ToColorSpace(IRgb color, ILab item)
        {
            var xyz = new Xyz();
            xyz.Initialize(color);

            var white = XyzConverter.WhiteReference;
            var x = PivotXyz(xyz.X / white.X);
            var y = PivotXyz(xyz.Y / white.Y);
            var z = PivotXyz(xyz.Z / white.Z);

            item.L = Math.Max(0, 116 * y - 16);
            item.A = 500 * (x - y);
            item.B = 200 * (y - z);
        }
        internal static IRgb ToColor(IHunterLab item)
        {
            var x = (item.A / 17.5) * (item.L / 10.0);
            var itemL_10 = item.L / 10.0;
            var y = itemL_10 * itemL_10;
            var z = item.B / 7.0 * item.L / 10.0;

            var xyz = new Xyz
                {
                    X = (x + y) / 1.02,
                    Y = y,
                    Z = -(z - y) / .847
                };
            return xyz.To<Rgb>();
        }
Esempio n. 9
0
        internal static IRgb ToColor(ILab item)
        {
            var y = (item.L + 16.0) / 116.0;
            var x = item.A / 500.0 + y;
            var z = y - item.B / 200.0;

            var white = XyzConverter.WhiteReference;
            var x3 = x * x * x;
            var z3 = z * z * z;
            var xyz = new Xyz
                {
                    X = white.X * (x3 > XyzConverter.Epsilon ? x3 : (x - 16.0 / 116.0) / 7.787),
                    Y = white.Y * (item.L > (XyzConverter.Kappa * XyzConverter.Epsilon) ? Math.Pow(((item.L + 16.0) / 116.0), 3) : item.L / XyzConverter.Kappa),
                    Z = white.Z * (z3 > XyzConverter.Epsilon ? z3 : (z - 16.0 / 116.0) / 7.787)
                };

            return xyz.ToRgb();
        }
Esempio n. 10
0
        internal static IRgb ToColor(ILab item)
        {
            var y = (item.L + 16) / 116.0;
            var x = item.A / 500.0 + y;
            var z = y - item.B / 200.0;

            y = Math.Pow(y, 3) > 0.008856 ? Math.Pow(y, 3) : (y - 16/116)/7.787;
            x = Math.Pow(x, 3) > 0.008856 ? Math.Pow(x, 3) : (x - 16/116)/7.787;
            z = Math.Pow(z, 3) > 0.008856 ? Math.Pow(z, 3) : (z - 16/116)/7.787;

            var xyz = new Xyz
                {
                    X = RefX*x,
                    Y = RefY*y,
                    Z = RefZ*z
                };

            return xyz.ToRgb();
        }
Esempio n. 11
0
        internal static void ToColorSpace(IRgb color, ILuv item)
        {
            var xyz = new Xyz();
            var white = XyzConverter.WhiteReference;
            xyz.Initialize(color);

            var y = xyz.Y / XyzConverter.WhiteReference.Y;
            item.L = y > XyzConverter.Epsilon ? 116.0 * XyzConverter.CubicRoot(y) - 16.0 : XyzConverter.Kappa * y;

            var targetDenominator = GetDenominator(xyz);
            var referenceDenominator = GetDenominator(white);
            // ReSharper disable CompareOfFloatsByEqualityOperator
            var xTarget = targetDenominator == 0 ? 0 : ((4.0 * xyz.X / targetDenominator) - (4.0 * white.X / referenceDenominator));
            var yTarget = targetDenominator == 0 ? 0 : ((9.0 * xyz.Y / targetDenominator) - (9.0 * white.Y / referenceDenominator));
            // ReSharper restore CompareOfFloatsByEqualityOperator

            item.U = 13.0 * item.L * xTarget;
            item.V = 13.0 * item.L * yTarget;
        }
Esempio n. 12
0
 internal static IRgb ToColor(ILuv item)
 {
     var white = XyzConverter.WhiteReference;
     const double c = -1.0 / 3.0;
     var uPrime = (4.0 * white.X) / GetDenominator(white);
     var vPrime = (9.0 * white.Y) / GetDenominator(white);
     var a = (1.0 / 3.0) * ((52.0 * item.L) / (item.U + 13 * item.L * uPrime) - 1.0);
     var imteL_16_116 = (item.L + 16.0) / 116.0;
     var y = item.L > XyzConverter.Kappa * XyzConverter.Epsilon
                 ? imteL_16_116 * imteL_16_116 * imteL_16_116
                 : item.L / XyzConverter.Kappa;
     var b = -5.0 * y;
     var d = y * ((39.0 * item.L) / (item.V + 13.0 * item.L * vPrime) - 5.0);
     var x = (d - b) / (a - c);
     var z = x * a + b;
     var xyz = new Xyz
         {
             X = 100 * x,
             Y = 100 * y,
             Z = 100 * z
         };
     return xyz.ToRgb();
 }
            internal static Rgb ToColor(Xyz item) {
                var x = item.X / 100.0;
                var y = item.Y / 100.0;
                var z = item.Z / 100.0;

                var r = x * 3.2406 + y * -1.5372 + z * -0.4986;
                var g = x * -0.9689 + y * 1.8758 + z * 0.0415;
                var b = x * 0.0557 + y * -0.2040 + z * 1.0570;

                r = r > 0.0031308 ? 1.055 * Math.Pow(r, 1 / 2.4) - 0.055 : 12.92 * r;
                g = g > 0.0031308 ? 1.055 * Math.Pow(g, 1 / 2.4) - 0.055 : 12.92 * g;
                b = b > 0.0031308 ? 1.055 * Math.Pow(b, 1 / 2.4) - 0.055 : 12.92 * b;

                return new Rgb {
                    R = ToRgb(r),
                    G = ToRgb(g),
                    B = ToRgb(b)
                };
            }
            internal static void ToColorSpace(Rgb color, Xyz item) {
                var r = PivotRgb(color.R / 255.0);
                var g = PivotRgb(color.G / 255.0);
                var b = PivotRgb(color.B / 255.0);

                item.X = r * 0.4124 + g * 0.3576 + b * 0.1805;
                item.Y = r * 0.2126 + g * 0.7152 + b * 0.0722;
                item.Z = r * 0.0193 + g * 0.1192 + b * 0.9505;
            }
Esempio n. 15
0
            public Xyz CloneByAlign(Xyz xyzToAlign)
            {
                Xyz.Atom[] atoms0 = atoms;
                Xyz.Atom[] atoms1 = xyzToAlign.atoms;
                if (atoms0.Length != atoms1.Length)
                {
                    HDebug.Assert(false);
                    return(null);
                }

                for (int i = 0; i < atoms0.Length; i++)
                {
                    Xyz.Atom atm0 = atoms0[i];
                    Xyz.Atom atm1 = atoms1[i];
                    bool     test = true;

                    if (atm0.Id != atm1.Id)
                    {
                        test = false;
                    }
                    if (atm0.AtomType != atm1.AtomType)
                    {
                        test = false;
                    }
                    //if(atm0.X         != atm1.X        ) test = false;
                    //if(atm0.Y         != atm1.Y        ) test = false;
                    //if(atm0.Z         != atm1.Z        ) test = false;
                    if (atm0.AtomId != atm1.AtomId)
                    {
                        test = false;
                    }
                    if (atm0.BondedId1 != atm1.BondedId1)
                    {
                        test = false;
                    }
                    if (atm0.BondedId2 != atm1.BondedId2)
                    {
                        test = false;
                    }
                    if (atm0.BondedId3 != atm1.BondedId3)
                    {
                        test = false;
                    }
                    if (atm0.BondedId4 != atm1.BondedId4)
                    {
                        test = false;
                    }
                    if (atm0.BondedId5 != atm1.BondedId5)
                    {
                        test = false;
                    }
                    if (atm0.BondedId6 != atm1.BondedId6)
                    {
                        test = false;
                    }
                    if (atm0.BondedId7 != atm1.BondedId7)
                    {
                        test = false;
                    }
                    if (atm0.BondedId8 != atm1.BondedId8)
                    {
                        test = false;
                    }
                    if (atm0.BondedId9 != atm1.BondedId9)
                    {
                        test = false;
                    }

                    if (test == false)
                    {
                        HDebug.Assert(false);
                        return(null);
                    }
                }

                Vector[] coords0 = atoms.HListCoords();
                Vector[] coords1 = xyzToAlign.atoms.HListCoords();
                Align.MinRMSD.Align(coords1, ref coords0);
                return(CloneByCoords(coords0));
            }
        public void AdjWP(Image<Bgr, byte> roiImg, Xyz WP, double[] AdjXYZ)
        {
            //Image<Bgr, byte> roiImg = (Image<Bgr, byte>)roi;
            Image<Xyz, byte> XYZROI = new Image<Xyz, byte>(roiImg.Width, roiImg.Height);
            CvInvoke.cvCvtColor(roiImg, XYZROI, COLOR_CONVERSION.CV_BGR2XYZ);
            double AvgX = XYZROI.GetAverage().X;
            double AvgY = XYZROI.GetAverage().Y;
            double AvgZ = XYZROI.GetAverage().Z;

            double AdjX = Math.Abs(WP.X / AvgX);
            double AdjY = Math.Abs(WP.Y / AvgY);
            double AdjZ = Math.Abs(WP.Z / AvgZ);

            AdjXYZ[0] = AdjX;
            AdjXYZ[1] = AdjY;
            AdjXYZ[2] = AdjZ;
        }