首先,請先準備一個檔案 "eng.traineddata " ,這玩意是人家已經做好的數據庫,在Github打上關鍵字後,你應該可以找到一堆。
然後,我們就來寫點Code吧 !
private void button3_Click(object sender, EventArgs e)
{
var op = new OpenFileDialog();
if (op.ShowDialog () == DialogResult.OK)
{
Tesseract _ocr = new Tesseract();
Image<Bgr, byte> image = new Image<Bgr,byte>(op.FileName);
Image<Gray, byte> gray = image.Convert<Gray, byte>(); ;
imageBox1.Image = image;
string path = Application.StartupPath + "\\tessdata";
string language = "eng";
try
{
// 指定參數實例化tessdata 類別
_ocr = new Tesseract(path, language, OcrEngineMode.Default);
// 識別圖像
_ocr.SetImage(gray);
_ocr.Recognize();
// 取得識別數據
Tesseract.Character[] characters = _ocr.GetCharacters();
// 創建Bgr為藍色
Bgr drawColor = new Bgr(Color.Brown);
foreach (Tesseract.Character c in characters)
{
image.Draw(c.Region, drawColor, 1);
}
imageBox1.Image = image;
String text = _ocr.GetUNLVText();
//Console.WriteLine(text);
richTextBox1.Text = text;
}
catch
{
MessageBox.Show("Please check again.");
}
}
}
成果 :