C#使用OneNote的圖片文字識別功能(OCR)


http://www.cnblogs.com/Charltsing/p/OneNoteOCR.html

有需要技術咨詢的,聯系QQ564955427

 

前段時間有人問我能不能通過OneNote掃描圖片,並返回文本。經過幾天的測試,以及對網上若干個代碼的測試,寫了一個OneNote 2013下的OCR導入導出工具。

在測試的時候,發現OneNote 2013 提供的API還是有一些問題的,總結如下:

1、OneNote 2013務必升級到最新版,否則調用API的時候,可能會發生異常。本人目前的版本是15.0.4787.1000簡體中文版。

2、掃描的語言支持中文和英文,簡體版當然默認使用中文識別,但貌似沒有辦法修改默認語言。也許只能通過修改控制面板中的語言及地區才可以。

3、通過OneNote API做掃描步驟也不復雜,一般都是三~四步,

    onenoteApp.CreateNewPage  建立新page

    onenoteApp.UpdatePageContent  加入圖片的base64數據

    onenoteApp.GetPageContent    從返回的XML里面提取OCR Data文本

    onenoteApp.DeleteHierarchy   刪除新建的page

4、有一些需要注意的問題:

     OneNote掃描圖片功能如果沒有禁用的話,是自動進行的,而且不能獲知什么時候識別完畢。只能通過延時語句來估計時間。

     onenoteApp.DeleteHierarchy 不太可靠,有的時候沒有刪除新建的page。建議增加Dispose刪除多出來的page(通過title識別即可)

     OneNote的DLL不支持嵌入資源,所以不同版本的OneNote需要引用不同的DLL,這可能會給程序的發布帶來一些問題。

 

下圖是OneNote2010的識別結果

 

OneNote2013識別情況要略好些。

 

***************************************************************************************

最后我把這個OCR封裝到了XLL里面,給Excel vba調用,方便批量識別圖片文本,並存入Excel。VBA調用代碼如下:

 


免責聲明!

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



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