Exemple #1
0
 public void PointTransformOperator()
 {
     for (var x = -10d; x <= 10d; x += 0.5)
     {
         for (var y = -10d; y <= 10d; y += 0.5)
         {
             var vector    = new DPoint(x, y);
             var vector2   = new DPoint(x * 2, y * 2);
             var transform = new PointTransform(15, vector);
             var ret       = transform.Operator(vector2);
             this.DisposeAndCheckDisposedState(transform);
         }
     }
 }
 float getScreenPoint(float xOrY, float scale, float offset, bool flip, bool correctProjection, double screenDimension)
 {
     if (flip)
     {
         xOrY = PointTransform.Flip(xOrY, 0f);
     }
     if (correctProjection)
     {
         xOrY = PointTransform.ScaleOffset(xOrY, scale, offset);
     }
     xOrY  = PointTransform.ScaleZeroToOne(xOrY);
     xOrY *= (float)screenDimension;
     return(xOrY);
 }
Exemple #3
0
 public void PointTransformCreate1()
 {
     for (var angle = -360d; angle <= 360d; angle += 2.5)
     {
         for (var x = -10d; x <= 10d; x += 0.5)
         {
             for (var y = -10d; y <= 10d; y += 0.5)
             {
                 var vector    = new DPoint(x, y);
                 var transform = new PointTransform(angle, vector);
                 this.DisposeAndCheckDisposedState(transform);
             }
         }
     }
 }
Exemple #4
0
        float getScreenPoint(float xOrY, float scale, float offset, bool flip, bool correctProjection, double screenDimension)
        {
            if (flip)
            {
                xOrY = PointTransform.Flip(xOrY, 0.5f);
            }
            float projSpace = xOrY * 2f - 1f;

            if (correctProjection)
            {
                projSpace = PointTransform.ScaleOffset(projSpace, scale, offset);
            }
            xOrY  = PointTransform.ScaleZeroToOne(projSpace);
            xOrY *= (float)screenDimension;
            return(xOrY);
        }
Exemple #5
0
 public void PointTransformB()
 {
     for (var angle = -360d; angle <= 360d; angle += 2.5)
     {
         for (var x = -10d; x <= 10d; x += 0.5)
         {
             for (var y = -10d; y <= 10d; y += 0.5)
             {
                 var vector    = new DPoint(x, y);
                 var transform = new PointTransform(angle, vector);
                 var b         = transform.B;
                 Assert.Equal(b.X, x);
                 Assert.Equal(b.Y, y);
                 this.DisposeAndCheckDisposedState(transform);
             }
         }
     }
 }
Exemple #6
0
 public void PointTransformM()
 {
     for (var angle = -360d; angle <= 360d; angle += 2.5)
     {
         for (var x = -10d; x <= 10d; x += 0.5)
         {
             for (var y = -10d; y <= 10d; y += 0.5)
             {
                 var vector    = new DPoint(x, y);
                 var transform = new PointTransform(angle, vector);
                 var m         = transform.M;
                 Assert.Equal(m.MatrixElementType, MatrixElementTypes.Double);
                 Assert.Equal(m.Rows, 2);
                 Assert.Equal(m.Columns, 2);
                 this.DisposeAndCheckDisposedState(m);
                 this.DisposeAndCheckDisposedState(transform);
             }
         }
     }
 }
Exemple #7
0
        public void PointTransformCreateException()
        {
            PointTransform transform = null;

            try
            {
                transform = new PointTransform(0, null);
                Assert.Fail("PointTransformAffine should not accept null object for 2nd argument");
            }
            catch
            {
                Console.WriteLine("OK");
            }
            finally
            {
                if (transform != null)
                {
                    this.DisposeAndCheckDisposedState(transform);
                }
            }
        }
        public void TransformImagePointTransform()
        {
            const string testName = "TransformImagePointTransform";
            var          path     = this.GetDataFile($"{LoadTarget}.bmp");

            var tests = new[]
            {
                new { Type = ImageTypes.HsiPixel, ExpectResult = false },
                new { Type = ImageTypes.RgbAlphaPixel, ExpectResult = false },
                new { Type = ImageTypes.RgbPixel, ExpectResult = true },
                new { Type = ImageTypes.UInt8, ExpectResult = true },
                new { Type = ImageTypes.UInt16, ExpectResult = true },
                new { Type = ImageTypes.Float, ExpectResult = true },
                new { Type = ImageTypes.Double, ExpectResult = true }
            };

            var angleCases = new[]
            {
                45d, -45d, 90d, 180d
            };

            var type = this.GetType().Name;

            foreach (var angle in angleCases)
            {
                foreach (var input in tests)
                {
                    foreach (var output in tests)
                    {
                        var expectResult = input.ExpectResult && output.ExpectResult;
                        var imageObj     = DlibTest.LoadImage(input.Type, path);
                        var outputObj    = Array2DTest.CreateArray2D(output.Type, imageObj.Rows, imageObj.Columns);

                        // 中心で回転
                        var x         = imageObj.Columns / 2;
                        var y         = imageObj.Rows / 2;
                        var transform = new PointTransform(angle, x, y);

                        var outputImageAction = new Func <bool, Array2DBase>(expect =>
                        {
                            Dlib.TransformImage(imageObj, outputObj, transform);
                            return(outputObj);
                        });

                        var successAction = new Action <Array2DBase>(image =>
                        {
                            Dlib.SaveJpeg(image, $"{Path.Combine(this.GetOutDir(type, testName), $"{LoadTarget}_{input.Type}_{output.Type}_{angle}_{x}_{y}.jpg")}");
                        });

                        var failAction = new Action(() =>
                        {
                            Assert.Fail($"{testName} should throw excption for InputType: {input.Type}, OutputType: {output.Type}, Angle,: {angle}, X: {x}, Y: {y}.");
                        });

                        var finallyAction = new Action(() =>
                        {
                            this.DisposeAndCheckDisposedState(transform);
                            this.DisposeAndCheckDisposedState(imageObj);
                            if (outputObj != null)
                            {
                                this.DisposeAndCheckDisposedState(outputObj);
                            }
                        });

                        var exceptionAction = new Action(() =>
                        {
                            Console.WriteLine($"Failed to execute {testName} to InputType: {input.Type}, OutputType: {output.Type}, Angle,: {angle}, X: {x}, Y: {y}.");
                        });

                        DoTest(outputImageAction, expectResult, successAction, finallyAction, failAction, exceptionAction);
                    }
                }
            }
        }
Exemple #9
0
        public void PointTransformCreate()
        {
            var transform = new PointTransform();

            this.DisposeAndCheckDisposedState(transform);
        }