標籤:
這幾天研究了下ORC 文字識別,大概瞭解了三種識別方式:
1、通過微軟的控制項調用Microsoft Office Document Imaging。
2、是通過AspriseOCR 調用
3、是Tesseract ORC
本人剛接觸編程不久,基本功不好,走了很多彎路,先把自己的一些體會寫下來,留著以後複慣用
先講 AspriseOCR 調用,這個是官網免費版,就是調用的時候會彈出對話方塊,讓你訪問官網
看了官網的SDK,欺負我E文不好,大概能看懂就行
http://asprise.com/ocr/docs/html/asprise-ocr-library-csharp-vb.net-component.html#option-1-pm-install-package-asprise-ocr-api
下載
執行個體檔案和API類庫
http://asprise.com/royalty-free-library/c%23-sharp.net-ocr-for-windows-mac-linux-download.html
建立一個c#項目:
匯入asprise-ocr-api 這個項目
把裡面的 demo檔案夾中 aocr.dll, aocr_x64.dll 複製到項目的跟目錄下
在自己建立的代碼中添加如下代碼:
using asprise_ocr_api;AspriseOCR.SetUp();AspriseOCR ocr = new AspriseOCR();ocr.StartEngine("eng", AspriseOCR.SPEED_FASTEST);string s = ocr.Recognize("C:\path\img.jpg", -1, -1, -1, -1, -1, AspriseOCR.RECOGNIZE_TYPE_ALL, AspriseOCR.OUTPUT_FORMAT_PLAINTEXT);Console.WriteLine("OCR Result: " + s);// process more images here ...ocr.StopEngine();
項目完成
--------------------------------------------------------------------------------------------------------------------------------------------
華麗的分隔字元
下面講破解版的asprise 的使用
先從網上下載 破解檔案,包含三個檔案:AspriseOCR.dll、DevIL.dll、ILU.dll。
把這3個檔案複製 產生可執行檔的跟目錄下,在項目屬性----產生-----目標平台 設定 x86平台,否者一直報錯。!!!! .Net 2.0 平台
其中需要使用的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圖片的寬和高。
破解方法教程參考:http://m.blog.csdn.net/blog/scys1217/19809855
vs2013 Asprise OCR C# 調用心得