private void InitOcr(String path, String lang, OcrEngineMode mode) { try { if (_ocr != null) { _ocr.Dispose(); _ocr = null; } if (String.IsNullOrEmpty(path)) { path = "."; } TesseractDownloadLangFile(path, lang); TesseractDownloadLangFile(path, "osd"); //script orientation detection String pathFinal = path.Length == 0 || path.Substring(path.Length - 1, 1).Equals(Path.DirectorySeparatorChar.ToString()) ? path : String.Format("{0}{1}", path, System.IO.Path.DirectorySeparatorChar); _ocr = new Tesseract(pathFinal, lang, mode); } catch (System.Net.WebException e) { _ocr = null; throw new Exception("Unable to download tesseract lang file. Please check internet connection.", e); } catch (Exception e) { _ocr = null; throw e; } }
private void InitOcr(String path, String lang, OcrEngineMode mode) { try { if (_ocr != null) { _ocr.Dispose(); _ocr = null; } if (String.IsNullOrEmpty(path)) { path = Tesseract.DefaultTesseractDirectory; } TesseractDownloadLangFile(path, lang); TesseractDownloadLangFile(path, "osd"); //script orientation detection _ocr = new Tesseract(path, lang, mode); } catch (System.Net.WebException e) { _ocr = null; throw new Exception("Unable to download tesseract lang file. Please check internet connection.", e); } catch (Exception e) { _ocr = null; throw e; } }
//"", "eng", OcrEngineMode.TesseractLstmCombined public void Init(string path, string lang, OcrEngineMode mode) { if (_ocr != null) { _ocr.Dispose(); } _ocr = new Tesseract(path, lang, mode); }
private void InitializeOCR(String dataPath, String lang, OcrEngineMode mode) { try { if (_ocr != null) { _ocr.Dispose(); } _ocr = new Tesseract(dataPath, lang, mode); } catch (Exception e) { _ocr = null; throw e; } }
/// <summary> /// Clear and reset the model. Required Init function to be called again before calling ProcessAndRender. /// </summary> public void Clear() { if (_ocr != null) { _ocr.Dispose(); _ocr = null; } }
public void SaveTicket() { try { var blockBlob = blobContainer.GetBlockBlobReference(ticket.PhotoName); var photo = ConvertPhotoToBlackWhite(blockBlob); if (photo == null) { return; } var text = ExtractTextFromPhoto(photo); if (text == null) { return; } var lines = text.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); var lotteryNumberTable = CreateLotteryNumberTable(); foreach (string line in lines) { var lotteryNumber = ParseLotteryNumber(line); if (!string.IsNullOrEmpty(lotteryNumber)) { DataRow row = lotteryNumberTable.NewRow(); row["MatchNumbers"] = lotteryNumber.Substring(0, 10); row["FinalNumbers"] = lotteryNumber.Substring(10, 2); lotteryNumberTable.Rows.Add(row); } } DataAccess.SaveTicket(ticket, lotteryNumberTable); } finally { if (OCR != null) { OCR.Dispose(); OCR = null; } } }
public object Any(OCRRequest request) { OCRResponse myResponse = new OCRResponse(); if (request.Base64UploadFile == null || string.IsNullOrWhiteSpace(request.Base64UploadFile.ToString())) { myResponse.jsonResponse = "There was no file attached or no file name was specified."; return(myResponse); } try { // get the image data and save to local storage string base64ImgStr = request.Base64UploadFile.ToString().Split(',')[1]; byte[] tmpBytes = Convert.FromBase64String(base64ImgStr); Image image = (Bitmap)((new ImageConverter()).ConvertFrom(tmpBytes)); // now do the OCR junk here var ocr = new Tesseract(); ocr.SetVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-.,/"); ocr.Init(@"C:\source\innovation\Content\tessdata", "eng", false); var resizedImage = (Bitmap)Resize(image, (3000), (3000), false); resizedImage.SetResolution(300, 300); var blackAndWhiteImage = BlackAndWhite(resizedImage, new Rectangle(0, 0, resizedImage.Width, resizedImage.Height)); var result = ocr.DoOCR(blackAndWhiteImage, Rectangle.Empty); OCRRawDataModel dataItems = new OCRRawDataModel(); dataItems.DataList = new List <OCRRawDataModel.RawDataItem>(); foreach (Word word in result) { var item = new OCRRawDataModel.RawDataItem(); item.Value = word.Text; item.Confidence = (int)word.Confidence; item.LineIndex = word.LineIndex; dataItems.DataList.Add(item); } var mapper = new IdentificationCardMapper(); var mappedObjects = mapper.MapDriversLicenseData(dataItems); myResponse.jsonResponse = JsonConvert.SerializeObject(mappedObjects); // cleanup image.Dispose(); resizedImage.Dispose(); ocr.Dispose(); } catch (Exception ex) { // i don't know what to do here... myResponse.jsonResponse = ex.Message; } return(myResponse); }
public String readScreen(Bitmap bmp) { Tesseract tesseract = new Tesseract(@"C:\lang", "rus", OcrEngineMode.TesseractLstmCombined); tesseract.SetImage(bmp.ToImage <Bgr, byte>()); tesseract.Recognize(); String text = tesseract.GetUTF8Text(); tesseract.Dispose(); //Очистка памяти return(text); }
private void loadLanguageToolStripMenuItem_Click(object sender, EventArgs e) { if (openLanguageFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { _ocr.Dispose(); string path = Path.GetDirectoryName(openLanguageFileDialog.FileName); string lang = Path.GetFileNameWithoutExtension(openLanguageFileDialog.FileName).Split('.')[0]; _ocr = new Tesseract(path, lang, OcrEngineMode.Default); languageNameLabel.Text = String.Format("{0} : tesseract", lang); } }
// grayscales the image and then runs the recognizer over it. private string ProcessImage(Mat image) { Tesseract tesseract = new Tesseract(TessdataDirectory, "eng", OcrEngineMode.Default, WhiteList, true); Image <Gray, Byte> processedImage = image.ToImage <Gray, Byte>(); tesseract.SetImage(processedImage); tesseract.Recognize(); string detectedText = tesseract.GetUTF8Text(); tesseract.Dispose(); return(detectedText); }
public static void Main() { Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("TesserNet.Example.SkiaSharp.img.png"); SKBitmap image = SKBitmap.Decode(stream); Tesseract tesseract = new Tesseract(); Console.WriteLine(tesseract.Read(image).Trim()); stream.Dispose(); image.Dispose(); tesseract.Dispose(); }
public static void Main() { Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("TesserNet.Example.System.Drawing.img.png"); Image image = Image.FromStream(stream); Tesseract tesseract = new Tesseract(); Console.WriteLine(tesseract.Read(image).Trim()); stream.Dispose(); image.Dispose(); tesseract.Dispose(); }
public string TextRecognize(Image <Bgr, byte> imgSceneRect, Tesseract ocr) { string str; //ocr.SetImage(FilterPlate(imgSceneRect)); ocr.SetImage(imgSceneRect); ocr.Recognize(); str = ocr.GetUTF8Text(); ocr.Dispose(); return(str); }
private void InitOCR(string dataPath, string lang, OcrEngineMode mode) { try { if (OCR != null) { OCR.Dispose(); OCR = null; } OCR = new Tesseract(dataPath, lang, mode); } catch (Exception e) { OCR = null; Console.WriteLine("Failed to initialize tesseract OCR engine, error: " + e.Message); } }
private static void InitOcr(String path, String lang, OcrEngineMode mode) { try { if (_ocr != null) { _ocr.Dispose(); _ocr = null; } //_ocr = new Tesseract() _ocr = new Tesseract(path, lang, mode, "1234567890"); //_ocr.SetVariable("tessedit_char_whitelist", "1234567890"); } catch (Exception e) { _ocr = null; } }
//private static void TesseractDownloadLangFile(String folder, String lang) //{ // String subfolderName = "tessdata"; // String folderName = System.IO.Path.Combine(folder, subfolderName); // if (!System.IO.Directory.Exists(folderName)) // { // System.IO.Directory.CreateDirectory(folderName); // } // String dest = System.IO.Path.Combine(folderName, String.Format("{0}.traineddata", lang)); // if (!System.IO.File.Exists(dest)) // using (System.Net.WebClient webclient = new System.Net.WebClient()) // { // String source = // String.Format("https://github.com/tesseract-ocr/tessdata/blob/4592b8d453889181e01982d22328b5846765eaad/{0}.traineddata?raw=true", lang); // Console.WriteLine(String.Format("Downloading file from '{0}' to '{1}'", source, dest)); // webclient.DownloadFile(source, dest); // Console.WriteLine(String.Format("Download completed")); // } //} private void InitOcr(String path, String lang, OcrEngineMode mode) { try { if (_ocr != null) { _ocr.Dispose(); _ocr = null; } _ocr = new Tesseract(path, lang, mode); } catch (Exception e) { _ocr = null; MessageBox.Show(e.Message, "Failed to initialize tesseract OCR engine", MessageBoxButtons.OK); } }
private void buttonRecognize_Click(object sender, EventArgs e) { try { string data = ""; _ocr = new Tesseract(Path.GetFullPath("../../tessdata/"), _language, _mode); Cursor.Current = Cursors.WaitCursor; _ocr.SetImage(_img_gray); _ocr.Recognize(); data = _ocr.GetUTF8Text(); textRecognize.Text = data; _ocr?.Dispose(); IDCardClient client; switch (_type) { case DocumentType.IDCardFrontSide: client = IDCardParser.ReadIDCardFrontSide(data); textResult.Text = client.ToStringFrontSide(); break; case DocumentType.IDCardBackSide: client = IDCardParser.ReadIDCardBackSide(data); textResult.Text = client.ToString(); break; case DocumentType.INN: string clientInn = INNParser.Parse(data); textResult.Text = $"INN = {clientInn}"; break; case DocumentType.SimpleText: textResult.Text = data; break; default: break; } } catch (Exception ex) { MessageBox.Show($"{ex.Message}"); } }
private NumberRecognition() { try { if (_ocr != null) { _ocr.Dispose(); _ocr = null; } _ocr = new Tesseract(".\\", "eng", OcrEngineMode.TesseractLstmCombined); _ocr.SetVariable("tessedit_char_whitelist", "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); } catch (System.Net.WebException e) { _ocr = null; throw new Exception("Unable to download tesseract lang file. Please check internet connection.", e); } catch (Exception e) { _ocr = null; throw e; } }
/// <summary> /// Disposes all the necessary objects /// </summary> protected override void DisposeObject() { _tesseract.Dispose(); }
protected override void DisposeObject() { _ocr.Dispose(); }
public void Dispose() { _ocr.Clear(); _ocr.Dispose(); _ocr = null; }
void PerfromOCV() { string str1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +-/1234567890{}()_<>\"\\;:*#%$&"; string language = "eng"; ICapture capture = (ICapture)video; System.Threading.Thread.Sleep(2000); Mat ImageMat = capture.QueryFrame(); IImage image1 = (IImage)ImageMat; //"Argument0", "Image Object"); language = "eng"; //"Argument1", "OCR Language"); int integerVariable1 = 70; //"Argument2", "Upper Left Corner X coordinate of ROI"); int integerVariable2 = 70; //"Argument3", "Upper Left Corner Y coordinate of ROI"); int integerVariable3 = 70; //"Argument4", "ROI Width (Number of Pixels"); int integerVariable4 = 70; //"Argument5", "ROI Height (Number of Pixels"); bool booleanVariable = false; //"Argument6", "Display Debug Window"); Image <Bgr, byte> image2 = new Image <Bgr, byte>(image1.Bitmap); image2.ROI = new Rectangle(integerVariable1, integerVariable2, integerVariable3, integerVariable4); string str2 = @".\\tessdata"; if (!Directory.Exists(str2)) { Directory.CreateDirectory(str2); } HelperMethods.LoadLanguage(str2, language); HelperMethods.LoadLanguage(str2, "osd"); //HelperMethods.LoadLanguage(str2, language); //string path = Path.GetFullPath(@"C:\Users\MarquezFr\source\repos\EmguOpenCVExample\EmguOpenCVExample\bin\Debug\tessdata\"); var tesseract = new Tesseract(Path.GetFullPath(str2.Length == 0 || str2.Substring(str2.Length - 1, 1).Equals(Path.DirectorySeparatorChar.ToString()) ? str2 : string.Format("{0}{1}", (object)str2, (object)Path.DirectorySeparatorChar)), language, OcrEngineMode.Default); tesseract.Init(Path.GetFullPath(str2.Length == 0 || str2.Substring(str2.Length - 1, 1).Equals(Path.DirectorySeparatorChar.ToString()) ? str2 : string.Format("{0}{1}", (object)str2, (object)Path.DirectorySeparatorChar)), language, OcrEngineMode.Default); //Tesseract tesseract = new Tesseract(path, language, OcrEngineMode.TesseractOnly); tesseract.SetVariable("tessedit_char_whitelist", str1); Image <Bgr, byte> image3 = new Image <Bgr, byte>(image2.Bitmap); if (image1.NumberOfChannels == 1) { CvInvoke.CvtColor((IInputArray)image2, (IOutputArray)image3, ColorConversion.Gray2Bgr, 0); } else { //image3 = (Image<Bgr, byte>)image1.Clone(); //original image3 = image1.Clone() as Image <Bgr, byte>; } //tesseract.SetImage((IInputArray)image3); original tesseract.SetImage((IInputArray)image3); if (tesseract.Recognize() != 0) { MessageBox.Show(string.Format("OpenCV_PerformOCR: OCR system failed to recognize image. OCR returned: {0}", (object)tesseract.Recognize())); } string utF8Text = tesseract.GetUTF8Text(); char[] separator = new char[3] { ' ', '\r', '\n' }; int length = utF8Text.Split(separator, StringSplitOptions.RemoveEmptyEntries).Length; if (booleanVariable) { //ImageViewer imageViewer = new ImageViewer((IImage)image2); //int num = (int)imageViewer.ShowDialog(); //imageViewer.Dispose(); } image2.Dispose(); image3.Dispose(); tesseract.Dispose(); }