1. 程式人生 > 程式設計 >c# 開發文字識別軟體

c# 開發文字識別軟體

本文主要討論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.識別結果

原圖片:

c# 開發文字識別軟體

圖片識別結果:

c# 開發文字識別軟體

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# 文字識別的資料請關注我們其它相關文章!