예제 #1
0
 public void Dispose()
 {
     APaint.Dispose();
     ACanvas.Dispose();
     Android.Runtime.JNIEnv.DeleteGlobalRef(jHost);
 }
예제 #2
0
 public void Dispose()
 {
     APaint.Dispose();
     ACanvas.Dispose();
 }
예제 #3
0
 /// <summary>
 /// Get OCR text and draw lines on original photo
 /// </summary>
 /// <param name="imageBytes"></param>
 /// <param name="threshhold"></param>
 private async void PerformOCR(byte[] imageBytes, double threshhold)
 {
     if (_api.Initialized)
     {
         string resultText = "";
         var result = await _api.SetImage(imageBytes);
         if (result)
         {
             resultText = _api.Text;
             bitmapWithBoxes = bitmap.Copy(bitmap.GetConfig(), true);
             Android.Graphics.Canvas canvas = new Android.Graphics.Canvas(bitmapWithBoxes);
             Android.Graphics.Color color = Android.Graphics.Color.IndianRed;
             Android.Graphics.Paint paint = new Android.Graphics.Paint();
             paint.SetStyle(Android.Graphics.Paint.Style.Stroke);
             paint.StrokeWidth = 2;
             foreach (Tesseract.Result r in _api.Results(Tesseract.PageIteratorLevel.Textline))
             {
                 if (r.Confidence > 50)
                 {
                     paint.Color = Android.Graphics.Color.GreenYellow;
                 }
                 else if (r.Confidence > 10)
                 {
                     paint.Color = Android.Graphics.Color.DarkOrange;
                 }
                 else
                 {
                     paint.Color = Android.Graphics.Color.DarkRed;
                 }
                 canvas.DrawRect(r.Box.X, r.Box.Y, r.Box.X + r.Box.Width, r.Box.Y + r.Box.Height, paint);
             }
             canvas.Dispose();
             Android.Util.Log.Info("tesseract result", resultText);
             PostProcessing pp = new PostProcessing();
             pp.ProcessString(resultText);
             _data = pp.processedList;
         }
     }
     else
     {
         Toast.MakeText(this, "OCR not initialized.", ToastLength.Long).Show();
     }
 }