Пример #1
0
        public void OcrParallelizationTest()
        {
            // Init Drive
            var relpath      = Path.Combine(Dir.OcrDirectory, Dir.OcrParallelizationTesting);
            var drive        = new Drive(relpath, Drive.Reason.Read);
            var currents     = drive.Files("reg").Concat(drive.Files("rev")).Select(path => new Bitmap(path)).ToArray();
            var opposites    = currents.Select(Filter.Reverse).ToArray();
            var regularCount = drive.FileCount("reg");

            var results = OCR.ParallelDetectOrientation(currents, opposites, Accuracy.Low, "eng", true).ToList();

            results.ToList().ForEach(result =>
            {
                var current  = result.Item2;
                var opposite = result.Item3;
                Console.WriteLine("-----------------------------------------------");
                Console.WriteLine(OCR.StripNewLine(current.Text + " vs " + opposite.Text));
                Console.WriteLine(current.Cost + " vs " + opposite.Cost);
                Console.WriteLine("Diff: " + (current.Cost - opposite.Cost));
                Console.WriteLine("scantime: " + current.ScanTime + "ms and " + opposite.ScanTime + "ms");
                Console.WriteLine();
            });
            results.Take(regularCount).ToList().ForEach(pair => Assert.IsTrue(pair.Item1 >= 0));
            results.Skip(regularCount).ToList().ForEach(pair => Assert.IsTrue(pair.Item1 <= 0));
        }