c# 開發文字識別軟體
阿新 • • 發佈:2020-12-15
本文主要討論C#開發使用百度文字識別OCR來識別文字,本文最後會提供本安全原始碼以及執行軟體包,如有需要可自行下載
開發流程如下:
1.建立百度應用:
建立應用之後就能看到建立完的應用和API KEY以及Secret KEY了,在呼叫API時需傳入這些配置值
詳見:https://console.bce.baidu.com/ai/#/ai/ocr/overview/index
2.引用Baidu.Aip (SDK)
Baidu.Aip封閉了文字識別OcrAPI的Http請求,簡化程式碼,提高開發效率。如果不想引用該DLL,可以自己封裝Http請求方法。
C# SDK 現已開源,快速接入文件參考:https://ai.baidu.com/ai-doc/OCR/ok3h7y6zw
3.呼叫API,
這裡僅展示通用及高精度識別示例,特殊場景識別,詳見官方文件:https://ai.baidu.com/ai-doc/OCR/Mk3h7y6j8
/// <summary> /// 呼叫百度 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))// 讀取應用配置 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); // 呼叫通用文字識別,圖片引數為本地圖片,可能會丟擲網路等異常,請使用try/catch捕獲 var result = client.GeneralBasic(image); // 如果有可選引數 var options = new Dictionary<string,object>{ {"language_type","CHN_ENG"},{"detect_direction","true"},{"detect_language",{"probability","true"} }; // 帶引數呼叫通用文字識別,圖片引數為本地圖片 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.識別結果
原圖片:
圖片識別結果:
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# 開發文字識別軟體的詳細內容,更多關於c# 文字識別的資料請關注我們其它相關文章!