csharp: Emgu.CV.OCR and Tesseract.OCR Optical Character Recognition
Posted geovindu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp: Emgu.CV.OCR and Tesseract.OCR Optical Character Recognition相关的知识,希望对你有一定的参考价值。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Emgu.CV; //3.2.02 using Emgu.CV.VideoStab; using Emgu.CV.ML; using Emgu.CV.OCR; using Emgu.CV.Structure; //https://github.com/iobrains/OpenCV namespace CharacterRecognition { /// <summary> /// geovindu edit /// </summary> public partial class MainWnd : Form { string path; public MainWnd() { InitializeComponent(); } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void loadImageToolStripMenuItem_Click(object sender, EventArgs e) { rtbOcrResult.Clear(); OpenFileDialog ofd = new OpenFileDialog(); ofd.Title = "Select an image"; ofd.Filter = "Image Files(*.png; *.jpg; *.bmp; *.gif)|*.png; *.jpg; *.bmp; *.gif"; if (ofd.ShowDialog() == DialogResult.OK) { path = System.IO.Path.GetFullPath(ofd.FileName); picBox.Image = new Bitmap(path); picBox.SizeMode = PictureBoxSizeMode.Zoom; statusLabelOCR.Text = path + " loaded."; } } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Close(); } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAnalyzeImage_Click(object sender, EventArgs e) { if(picBox.Image == null) { MessageBox.Show("Load an image first!"); } else { statusLabelOCR.Text = "Analyzing invoice image..."; Task.Run(() => { using (var img = new Image<Bgr, byte>(path)) { //https://github.com/tesseract-ocr/tessdata/ //Environment.GetEnvironmentVariable("EMGU_ROOT") + string tessdata = @"D:open sourceface essdata"; using (var ocrProvider = new Tesseract(tessdata, "eng", OcrEngineMode.TesseractOnly)) //TesseractCubeCombined { ocrProvider.SetImage(img); //Recognize string text = ocrProvider.GetUTF8Text().TrimEnd(); //GetText rtbOcrResult.Invoke((MethodInvoker)delegate { statusLabelOCR.Text = "Analysis completed."; rtbOcrResult.AppendText(text); }); } } }); } } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MainWnd_Load(object sender, EventArgs e) { } } }
以上是关于csharp: Emgu.CV.OCR and Tesseract.OCR Optical Character Recognition的主要内容,如果未能解决你的问题,请参考以下文章
csharp C#_Read_Json_and_Convert.cs
csharp:workflow and bpm(Business Process Management)
csharp: NHibernate and Entity Framework (EF) (object-relational mapper)
csharp: Procedure with DAO(Data Access Object) and DAL(Data Access Layer)