黃聰:C# 圖片識別(支援21種語言)

來源:互聯網
上載者:User

圖片識別的技術到幾天已經很成熟了,只是相關的資料很少,為了方便在此匯總一下(C#實現),方便需要的朋友查閱,也給自己做個記號。

 

圖片識別的用途:很 多人用它去破解網站的驗證碼,用於達到自動刷票或者是大量註冊的目的,但我覺得它最吸引我的地方是可以讓一些書寫的東西,自動識別成電腦上的文字,比如說 手擬的合約,修改過的書面論文或者是文檔,每月的花費發票需要在電腦上錄入或者是匯總資訊,日記本上的文章要轉移到電腦上等等,我們現在就不用再頭痛把它 們在電腦上敲寫一遍了。

 

本文介紹兩種比較主流和成熟的識別方式:

方式一、Asprise-OCR實現。

方式二、Microsoft Office Document Imaging(Office 2007) 組件實現。

 

方式一、Asprise-OCR的使用。

Asprise-OCR:aspriseOCR.zip

其中需要使用的3個dll是AspriseOCR.dll、DevIL.dll、ILU.dll。

需要注意的是這幾個.dll是vc寫的引用要在程式中用DllImport引用,關鍵代碼:

[DllImport("AspriseOCR.dll", EntryPoint = "OCR", CallingConvention = CallingConvention.Cdecl)]public static extern IntPtr OCR(string file, int type);[DllImport("AspriseOCR.dll", EntryPoint = "OCRpart", CallingConvention = CallingConvention.Cdecl)]static extern IntPtr OCRpart(string file, int type, int startX, int startY, int width, int height);[DllImport("AspriseOCR.dll", EntryPoint = "OCRBarCodes", CallingConvention = CallingConvention.Cdecl)]static extern IntPtr OCRBarCodes(string file, int type);[DllImport("AspriseOCR.dll", EntryPoint = "OCRpartBarCodes", CallingConvention = CallingConvention.Cdecl)]static extern IntPtr OCRpartBarCodes(string file, int type, int startX, int startY, int width, int height);

調用代碼很簡單只有一句:

MessageBox.Show(Marshal.PtrToStringAnsi(OCRpart(img_path, -1, startX, startY, width, height)));

其中img_path:為圖片路徑,startX、startY座標均為0即可,width、height圖片的寬和高。

 

方式二、Microsoft Office Document Imaging(Office 2007) 組件實現。

在使用之前需要給大家說的是Imaging 組件的相容性不是很好,使用win 7 office 2007的時必須打上office 2007 sp1或者sp2補丁,讀取中文才行。 

sp1補丁地址(226M) :

http://download.microsoft.com/download/1/6/5/1659d607-8696-4001-8072-efaedd70dd30/office2007sp1-kb936982-fullfile-zh-cn.exe

sp2補丁地址(301 MB):

http://download.microsoft.com/download/A/3/9/A39E919E-AFA8-4128-9249-51629206C70F/office2007sp2-kb953195-fullfile-zh-cn.exe 

 

給項目添加組件引用,

使用代碼:

MODI.Document doc = new MODI.Document();doc.Create(img_Path);MODI.Image image;MODI.Layout layout;doc.OCR(MODI.MiLANGUAGES.miLANG_CHINESE_SIMPLIFIED, true, true);  // 識別簡體中文for (int i = 0; i < doc.Images.Count; i++){    image = (MODI.Image)doc.Images[i];    layout = image.Layout;    sb.Append(layout.Text);}MessageBox.Show(sb.ToString());

其中img_Path為圖片路徑,MODI.MiLANGUAGES為讀取圖片的文字類型枚舉。

本文源碼:http://files.cnblogs.com/stone_w/OCR.rar 

漢王 PDF OCR V8.1簡體中文版(已經使用了,感覺不錯推薦一下):http://xiazai.zol.com.cn/detail/34/335364.shtml

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.