예제 #1
0
        static void Experiment5Taskv2Performence()
        {
            int    level = 2;
            string name  = "lenna";

            Logger.Info(name);
            string inputName = $"../../../test_images/{name}.png";
            Bitmap input     = new Bitmap(inputName);
            Bitmap output    = new Bitmap(input.Width, input.Height, input.PixelFormat);

            var imageReader = new BitmapReader <int>(input);
            var mallat      = new MallatDecomposition <int, NineSevenBiortogonalInteger <int> >(imageReader).Build(input.Size, level);

            Logger.Info(mallat.ToString());
            var    calculator      = new MallatEntropyEvaluator <int>(input.Size, level, mallat);
            var    mallatCollector = new MallatMerger <int>(input.Size, level, mallat);
            var    imageWriter     = new BitmapWriter <int>(new Bitmap(input.Width, input.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb), "", mallatCollector);
            string outputName      = $"{inputName}_{mallat.ToString()}.png";

            imageWriter.SetImageName(outputName);
            calculator.DataLength = 3;

            var sw = System.Diagnostics.Stopwatch.StartNew();

            Logger.Info("Sync:");
            imageWriter.Process();
            Logger.Info($"Time:\t{sw.Elapsed}");
            sw.Restart();
            Logger.Info("Async v2:");
            imageWriter.ProcessAsync();
            Logger.Info($"Time:\t{sw.Elapsed}");
        }
예제 #2
0
        static void Experiment7()
        {
            string name      = "barbara";
            string folder    = "../../../test_images";
            string inputName = $"{folder}/{name}.png";

            Logger.Info(inputName);
            Bitmap input   = new Bitmap(inputName);
            Bitmap output1 = new Bitmap(input.Width / 2, input.Height, input.PixelFormat);
            Bitmap output2 = new Bitmap(input.Width / 2, input.Height, input.PixelFormat);

            var imageReader  = new BitmapReader <int>(input);
            var d4           = new DaubechiesWaveletD4Integer <int>(imageReader);
            var imageWriter1 = new BitmapWriter <int>(output1, $"{folder}/Experiment7_barbara_0.png", d4[0]);
            var imageWriter2 = new BitmapWriter <int>(output1, $"{folder}/Experiment7_barbara_1.png", d4[1]);

            imageWriter1.ProcessAsync();
            imageWriter2.ProcessAsync();
        }