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); }
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); } }
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); } }
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); }
private IChequeTemplate DetermineChequeTemplate(AnalysedImage image) { return(_chequeTemplates[0]); /* lol */ }