C# 使用OCR識別中文


private void button1_Click(object sender, EventArgs e)
{
   MODI.Document doc = new MODI.Document();
   doc.Create("C:\\OCR\\text.jpg");
   MODI.Image image;
   MODI.Layout layout;
   doc.OCR(MODI.MiLANGUAGES.miLANG_CHINESE_SIMPLIFIED, true, true);
   StringBuilder sb = new StringBuilder();
   for (int i = 0; i < doc.Images.Count; i++)
   {
      image = (MODI.Image)doc.Images[i];
        layout = image.Layout;
        sb.Append(layout.Text);
    }
    textBox1.Text = sb.ToString();
}

 

來源地址:http://www.wxzzz.com/1602.html

 

現在市面上的可用的OCR(光學字符識別)組件還是比較多的,其中有大名鼎鼎的Tesseract,還有非常專業的Asprise,盡管它們非常專業、非常好用,但是用起來並不省事(因為它們對中文的支持並不友好)。如果公司是專業開發OCR套件,願意耗資長時間的深入研發,那么比較推薦Tesseract,它可以進行深入的配置,並且是開源的。

經過多種方案的嘗試后,發現還是微軟的OCR組件對中文識別效果不錯,並且簡單。該組件基於office 2007中,其效果如下所示:

ocr

使用C#與Office 2007 OCR組件實現圖文轉換

  1. 安裝office 2007.(安裝組件選項時需要手動在 工具–> Microsoft Office Document Imaging 安裝此項)
  2. Office SP2 補丁安裝(301 MB):http://download.microsoft.com/download/A/3/9/A39E919E-AFA8-4128-9249-51629206C70F/office2007sp2-kb953195-fullfile-zh-cn.exe
  3. 在visual studio C#項目中引用COM組件:Microsoft Office Document Imaging 12.0 Type Library
  4. 然后編寫如下代碼(本文使用的為winfrom測試項目):

 

 

 

 

 

 

然后在C盤放入一個text.jpg文件即可開始測試以上代碼。

其它說明:如果報錯“其他信息: 檢索 COM 類工廠中 CLSID 為 {40942A6C-1520-4132-BDF8-BDC1F71F547B} 的組件失敗,原因是出現以下錯誤: 80040154 沒有注冊類”,請嘗試將項目生成目標從 Any CPU  修改為 x86 .

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM