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); }
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); } } } }
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); }
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); } } } }
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); } } } }
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); } } } }
public void PointTransformCreate() { var transform = new PointTransform(); this.DisposeAndCheckDisposedState(transform); }