c# 開發(fā)文字識別軟件
本文主要討論C#開發(fā)使用百度文字識別OCR來識別文字,本文最后會提供本安全源代碼以及運行軟件包,如有需要可自行下載
開發(fā)流程如下:
1. 創(chuàng)建百度應(yīng)用:
創(chuàng)建應(yīng)用之后就能看到創(chuàng)建完的應(yīng)用和 API KEY 以及 Secret KEY了,在調(diào)用API時需傳入這些配置值
詳見:https://console.bce.baidu.com/ai/#/ai/ocr/overview/index
2. 引用 Baidu.Aip (SDK)
Baidu.Aip 封閉了文字識別Ocr API 的Http請求,簡化代碼,提高開發(fā)效率。如果不想引用該DLL,可以自己封裝Http請求方法。
C# SDK 現(xiàn)已開源,快速接入文檔參考:https://ai.baidu.com/ai-doc/OCR/ok3h7y6zw
3. 調(diào)用API,
這里僅展示通用及高精度識別示例,特殊場景識別,詳見官方文檔:https://ai.baidu.com/ai-doc/OCR/Mk3h7y6j8
/// <summary> /// 調(diào)用百度 API 識別文字 /// </summary> /// <param name="imgPath">圖片路徑</param> /// <param name="accurate">是否高精度</param> /// <returns></returns> public BaiduRetOcr Recognize(string imgPath, bool accurate) { try { string appId, apiKey, secretKey; if(!RiverAuth.Instant.GetOcrApiConfig(out appId, out apiKey, out secretKey))// 讀取應(yīng)用配置 return new BaiduRetOcr(); var client = new Baidu.Aip.Ocr.Ocr(apiKey, secretKey); client.Timeout = (int)ConfigUtil.GetConfig(EnumConfigKey.ClientTimeOut, 60 * 1000); var image = File.ReadAllBytes(imgPath); // 調(diào)用通用文字識別, 圖片參數(shù)為本地圖片,可能會拋出網(wǎng)絡(luò)等異常,請使用try/catch捕獲 var result = client.GeneralBasic(image); // 如果有可選參數(shù) var options = new Dictionary<string, object>{ {"language_type", "CHN_ENG"}, {"detect_direction", "true"}, {"detect_language", "true"}, {"probability", "true"} }; // 帶參數(shù)調(diào)用通用文字識別, 圖片參數(shù)為本地圖片 if (accurate) { result = client.AccurateBasic(image, options); } else result = client.GeneralBasic(image, options); return result.ToObject<BaiduRetOcr>(); } catch (Exception ex) { MsgUtil.Error("識別錯誤:"+ex.Message); return new BaiduRetOcr(); } finally { } }
4. 識別結(jié)果
原圖片:
圖片識別結(jié)果:
5. 源代碼及軟件包下載
軟件開源代碼地址(集成項目):https://gitee.com/bidev_admin/river-int-ai.git
運行軟件包下載地址(.Net Framework 4.5): https://pan.baidu.com/s/1z-WFDGHhEP8tqLqwp9I0Mw 提取碼: r3sk
作者:沐汐 Vicky
出處:http://www.cnblogs.com/EasyInvoice
以上就是c# 開發(fā)文字識別軟件的詳細內(nèi)容,更多關(guān)于c# 文字識別的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
UGUI實現(xiàn)隨意調(diào)整Text中的字體間距
這篇文章主要為大家詳細介紹了UGUI實現(xiàn)隨意調(diào)整字體間距的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-03-03Unity3D啟動外部程序并傳遞參數(shù)的實現(xiàn)
這篇文章主要介紹了Unity3D啟動外部程序并傳遞參數(shù)的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04C#數(shù)據(jù)結(jié)構(gòu)之雙向鏈表(DbLinkList)實例詳解
這篇文章主要介紹了C#數(shù)據(jù)結(jié)構(gòu)之雙向鏈表(DbLinkList),結(jié)合實例形式較為詳細的講解了雙向鏈表的概念及C#實現(xiàn)雙向鏈表的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11VS?Code里使用Debugger?for?Unity插件調(diào)試的方法(2023最新版)
Debugger for Unity是一個非正式支持的,官方推薦的,應(yīng)用最廣的,Visual Studio Code上的Unity調(diào)試插件,這篇文章主要介紹了VS?Code里使用Debugger?for?Unity插件進行調(diào)試(2023最新版),需要的朋友可以參考下2023-02-02