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 source\face\tessdata"; 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) { } } }
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)