c# 開(kāi)發(fā)文字識(shí)別軟件
本文主要討論C#開(kāi)發(fā)使用百度文字識(shí)別OCR來(lái)識(shí)別文字,本文最后會(huì)提供本安全源代碼以及運(yùn)行軟件包,如有需要可自行下載
開(kāi)發(fā)流程如下:
1. 創(chuàng)建百度應(yīng)用:
創(chuàng)建應(yīng)用之后就能看到創(chuàng)建完的應(yīng)用和 API KEY 以及 Secret KEY了,在調(diào)用API時(shí)需傳入這些配置值
詳見(jiàn):https://console.bce.baidu.com/ai/#/ai/ocr/overview/index
2. 引用 Baidu.Aip (SDK)
Baidu.Aip 封閉了文字識(shí)別Ocr API 的Http請(qǐng)求,簡(jiǎn)化代碼,提高開(kāi)發(fā)效率。如果不想引用該DLL,可以自己封裝Http請(qǐng)求方法。
C# SDK 現(xiàn)已開(kāi)源,快速接入文檔參考:https://ai.baidu.com/ai-doc/OCR/ok3h7y6zw
3. 調(diào)用API,
這里僅展示通用及高精度識(shí)別示例,特殊場(chǎng)景識(shí)別,詳見(jiàn)官方文檔:https://ai.baidu.com/ai-doc/OCR/Mk3h7y6j8
/// <summary>
/// 調(diào)用百度 API 識(shí)別文字
/// </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í)別, 圖片參數(shù)為本地圖片,可能會(huì)拋出網(wǎng)絡(luò)等異常,請(qǐng)使用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í)別, 圖片參數(shù)為本地圖片
if (accurate)
{
result = client.AccurateBasic(image, options);
}
else
result = client.GeneralBasic(image, options);
return result.ToObject<BaiduRetOcr>();
}
catch (Exception ex) {
MsgUtil.Error("識(shí)別錯(cuò)誤:"+ex.Message);
return new BaiduRetOcr();
}
finally
{
}
}
4. 識(shí)別結(jié)果
原圖片:

圖片識(shí)別結(jié)果:

5. 源代碼及軟件包下載
軟件開(kāi)源代碼地址(集成項(xiàng)目):https://gitee.com/bidev_admin/river-int-ai.git
運(yùn)行軟件包下載地址(.Net Framework 4.5): https://pan.baidu.com/s/1z-WFDGHhEP8tqLqwp9I0Mw 提取碼: r3sk
作者:沐汐 Vicky
出處:http://www.cnblogs.com/EasyInvoice
以上就是c# 開(kāi)發(fā)文字識(shí)別軟件的詳細(xì)內(nèi)容,更多關(guān)于c# 文字識(shí)別的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
剖析設(shè)計(jì)模式編程中C#對(duì)于組合模式的運(yùn)用
這篇文章主要介紹了設(shè)計(jì)模式編程中C#對(duì)于組合模式的運(yùn)用,理論上來(lái)說(shuō)組合模式包含抽象構(gòu)件、樹(shù)葉構(gòu)件和樹(shù)枝構(gòu)件三個(gè)角色,需要的朋友可以參考下2016-02-02
C#記一次http協(xié)議multipart/form-data的boundary問(wèn)題
這篇文章主要介紹了C#記一次http協(xié)議multipart/form-data的boundary問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
C#獲取文件名和文件路徑的兩種實(shí)現(xiàn)方式
這篇文章主要介紹了C#獲取文件名和文件路徑的兩種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
C#使用偽隨機(jī)數(shù)實(shí)現(xiàn)加密用戶密碼的方法
這篇文章主要介紹了C#使用偽隨機(jī)數(shù)實(shí)現(xiàn)加密用戶密碼的方法,對(duì)于開(kāi)發(fā)C#會(huì)員系統(tǒng)或者程序安全問(wèn)題都有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-07-07

