// Extract Text Line by Lines private string ExtractTextByRegions(OCRText ocrOutput) { string resultText = String.Empty; foreach (Region ereg in ocrOutput.Regions) { resultText += string.Join("\n", from WLine sline in ereg.Lines from Word sword in sline.Words select(string) sword.Text); } return(resultText); }
// Extract Text & Text Regions private void ExtractTextAndRegionsFromResponse() { var response = JObject.Parse(OCRResponse); OCRText ocrOutput = JsonConvert.DeserializeObject <OCRText>(OCRResponse); foreach (Region ereg in ocrOutput.Regions) { // Draw rectangles for the regions CreateRectangle("region", ereg.BoundingBox, _regionColor); foreach (WLine sline in ereg.Lines) { // Draw rectangles for the lines CreateRectangle("line", sline.BoundingBox, _lineColor); foreach (Word sword in sline.Words) { // Draw rectangles for the words CreateImageLabelsAndRectangle(sword.BoundingBox, sword.Text); } } } // Visibility check for the bounding box layers if (regionVis) { canvasRegions.Visibility = Visibility.Visible; } if (lineVis) { canvasLines.Visibility = Visibility.Visible; } if (wordVis) { canvasWords.Visibility = Visibility.Visible; } if (textVis) { canvasText.Visibility = Visibility.Visible; } // Visibility check for text output stckOutput.Visibility = Visibility.Visible; txtOcrOutput.Text = ExtractTextByRegions(ocrOutput); //Search key-value pairs if keys are defined in Settings. if (!string.IsNullOrEmpty(searchKeys)) { ExtractKeyValuePairs(ocrOutput.Regions); } }