public void Forward_transform_produces_correct_downsampled_image() { Image <double> expected = new Image <double>(new[, ] { { 2, 9.5, 25.5 }, { 2, 9.5, 25.5 } }); ImageTest.AssertEquals(laplacian.Forward(source)[0], expected); }
public void Lenna_is_perfectly_reconstructed_after_5_steps() { Laplacian2D <YuvD> transform = new Laplacian2D <YuvD>(new DigitalFilter(new Dirichlet(3), 2), new DigitalFilter(new Dirichlet(2), 2)); Image <YuvD> lenna = Image <YuvD> .Load("Lenna.png"); ImageTest.AssertEquals(transform.Inverse(transform.Forward(lenna, 5)), lenna); }
public static void Main() { Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; Image <YuvD> lenna = Image <YuvD> .Load("Resources\\Lenna.png"); Sampler2D <YuvD> analysis = new SeparableSampler <YuvD>(new Dirichlet3SamplerYuvD()); Sampler2D <YuvD> synthesis = new SeparableSampler <YuvD>(new Dirichlet2SamplerYuvD()); Laplacian2D <YuvD> transform = new Laplacian2D <YuvD>(analysis, synthesis); Image <YuvD>[] transformed = transform.Forward(lenna, 5); transformed[0].Save("c:\\temp\\lenna-0.png"); for (int i = 1; i < transformed.Length; i++) { transformed[i].Normalize(); transformed[i].Save($"c:\\temp\\lenna-{i}.png"); transformed[i].Clear(); } Image <YuvD> reconstructed = transform.Inverse(transformed); reconstructed.Save("c:\\temp\\lenna-r.png"); }