Exemple #1
0
        public void OcrParallelizationExperiment()
        {
            // Init Drive
            var relpath = Path.Combine(Dir.OcrDirectory, Dir.OcrParallelizationTesting);
            var drive   = new Drive(relpath, Drive.Reason.Read);
            var regs    = drive.Files("reg").ToList();
            var revs    = drive.Files("rev").ToList();

            // Sort to ensure correct pairing
            regs.Sort();
            revs.Sort();

            // Concatenate and Recognize
            var images   = regs.Concat(revs).Select(path => new Bitmap(path)).ToList();
            int revStart = regs.Count;
            var datas    = new List <OcrData>(OCR.ParallelRecognize(images, images.Count(), Accuracy.Low, "eng", true));
            var regdata  = datas.Take(revStart);
            var revdata  = datas.Skip(revStart);

            var difference = regdata.Zip(revdata, (reg, rev) =>
            {
                Console.WriteLine("-----------------------------------------------");
                Console.WriteLine(OCR.StripNewLine(reg.Text + " vs " + rev.Text));
                Console.WriteLine(reg.Cost + " vs " + rev.Cost);
                Console.WriteLine("Diff: " + (reg.Cost - rev.Cost));
                Console.WriteLine("scantime: " + reg.ScanTime + "ms and " + rev.ScanTime + "ms");
                Console.WriteLine();
                return(reg.Cost - rev.Cost);
            }).ToList();

            difference.ForEach(diff => Assert.IsTrue(diff < 0));
        }