Exemple #1
0
 private Line GetProperty(AABBBoundingBoxItemWithText boundingBoxWithText, AnalysedImage image)
 {
     foreach (var recognitionResult in image.Result.RecognitionResults)
     {
         foreach (var line in recognitionResult.Lines)
         {
             if (line.BoundingBox.IsIntersecting(boundingBoxWithText.BoundingBox))
             {
                 return(line);
             }
         }
     }
     return(null);
 }
Exemple #2
0
        public void RenderAnalysedChequeBoundingBoxes(AnalysedImage analysedImage)
        {
            List <Line> lines =
                analysedImage.Result.RecognitionResults.Select(result => result.Lines.Select(line => line).ToList()).FirstOrDefault();

            FileInfo fi = new FileInfo(analysedImage.QueuedImage.FilePath);

            using (FileStream fs = File.Create(GetNewFileName(fi, "analysed")))
                using (Image image = Image.Load(fi.FullName))
                {
                    ResizeImage(image);
                    lines.ForEach(line => DrawBoundingBox(image, line));
                    SaveImageAsJpegToStream(fs, image);
                }
        }
Exemple #3
0
        public void RenderChequeTemplateBoundingBoxes(AnalysedImage analysedImage)
        {
            FileInfo fi = new FileInfo(analysedImage.QueuedImage.FilePath);

            using (FileStream fs = File.Create(GetNewFileName(fi, "template")))
                using (Image image = Image.Load(fi.FullName))
                {
                    ResizeImage(image);
                    DrawBoundingBoxes(image,
                                      analysedImage.ChequeTemplate.AccountNumber,
                                      analysedImage.ChequeTemplate.Amount,
                                      analysedImage.ChequeTemplate.Date,
                                      analysedImage.ChequeTemplate.PayDescriptionLineOne,
                                      analysedImage.ChequeTemplate.PayDescriptionLineTwo
                                      );
                    SaveImageAsJpegToStream(fs, image);
                }
        }
Exemple #4
0
        private ChequeAnalysis RunChequeAnalysis(AnalysedImage image)
        {
            IChequeTemplate chequeTemplate = DetermineChequeTemplate(image);

            image.ChequeTemplate = chequeTemplate;

            ChequeAnalysis chequeAnalysis = new ChequeAnalysis
                                            (
                accountNumber: GetProperty(chequeTemplate.AccountNumber, image)?.Text,
                amount: GetProperty(chequeTemplate.Amount, image)?.Text,
                date: GetProperty(chequeTemplate.Date, image)?.Text,
                payDescriptionLineOne: GetProperty(chequeTemplate.PayDescriptionLineOne, image)?.Text,
                payDescriptionLineTwo: GetProperty(chequeTemplate.PayDescriptionLineTwo, image)?.Text
                                            );

            _imageManager.RenderAnalysedChequeBoundingBoxes(image);
            _imageManager.RenderChequeTemplateBoundingBoxes(image);


            return(chequeAnalysis);
        }
Exemple #5
0
 private IChequeTemplate DetermineChequeTemplate(AnalysedImage image)
 {
     return(_chequeTemplates[0]); /* lol */
 }