調用百度Api讀取圖片文字 C#


1.注冊百度Api

2.引用 c# SDK

安裝文字識別 C# SDK

C# SDK 現已開源! https://github.com/Baidu-AIP/dotnet-sdk

** 支持平台:.Net Framework 3.5 4.0 4.5, .Net Core 2.0 **

方法一:使用Nuget管理依賴 (推薦)

在NuGet中搜索 Baidu.AI,安裝最新版即可。

packet地址 https://www.nuget.org/packages/Baidu.AI/

方法二:下載安裝

文字識別 C# SDK目錄結構

Baidu.Aip
    ├── net35
    │   ├── AipSdk.dll             // 百度AI服務 windows 動態庫 │   ├── AipSdk.xml // 注釋文件 │   └── Newtonsoft.Json.dll // 第三方依賴 ├── net40 ├── net45 └── netstandard2.0 ├── AipSdk.deps.json └── AipSdk.dll


官方網站下載C# SDK壓縮工具包;解壓后,將 AipSdk.dll 和 Newtonsoft.Json.dll 中添加為引用。

 

3.demo源碼:

using Newtonsoft.Json.Linq;
using System.IO;

namespace HelperBll
{
    public class ImgApiBll
    {
        //基礎參數:從配置文件取過來
        private readonly string _api_key;//百度api鍵值
        private readonly string _secret_key;//百度api秘鑰
        private readonly int _timeOut;//超時設置

        public ImgApiBll(string api_key, string secret_key, int timeOut )
        {
            _api_key = api_key;
            _secret_key = secret_key;
            _timeOut = timeOut;
        }

        /// <summary>
        /// 文字-json格式
        /// </summary>
        /// <param name="imgPath">圖片地址</param>
        /// <returns></returns>
        public string ReadImgTxt(string imgPath)
        {
            var client = new Baidu.Aip.Ocr.Ocr(_api_key, _secret_key)
            {
                Timeout = _timeOut  //超時時間
            };

            //本地圖片
            byte[] imgStream = File.ReadAllBytes(imgPath); //圖片二進制
            JObject jsonResult = client.GeneralBasic(imgStream);

            //網絡圖片
            //JObject jsonResult = client.GeneralBasicUrl(imgUrl);

            //JObject jsonResult = client.Accurate(imgStream);          //本地圖片:相對於通用文字識別該產品精度更高,但是識別耗時會稍長。
            //JObject jsonResult = client.General(imgStream);           //本地圖片:通用文字識別(含位置信息版)
            //JObject jsonResult = client.GeneralUrl(imgUrl);          //網絡圖片:通用文字識別(含位置信息版)

            //JObject jsonResult = client.GeneralEnhanced(imgStream);   //本地圖片:調用通用文字識別(含生僻字版)
            //JObject jsonResult = client.GeneralEnhancedUrl(imgUrl);  //網絡圖片:調用通用文字識別(含生僻字版)

            //JObject jsonResult = client.WebImage(imgStream);          //本地圖片:用戶向服務請求識別一些背景復雜,特殊字體的文字。
            //JObject jsonResult = client.WebImageUrl(imgUrl);         //網絡圖片:用戶向服務請求識別一些背景復雜,特殊字體的文字。

            return jsonResult.ToString();
        }

    }
}

  

 

4. 程序效果:

圖片示例:

 

讀出文字結果:

 

{{
  "log_id": 2872598628702849350,
  "words_result_num": 18,
  "words_result": [
    {
      "words": "接口名稱"
    },
    {
      "words": "接口能力簡要描述"
    },
    {
      "words": "通用文字識別"
    },
    {
      "words": "識別圖片中的文字信息"
    },
    {
      "words": "通用文字識別(高精度版)"
    },
    {
      "words": "更高精度地識別圖片中的文字信息"
    },
    {
      "words": "通用文字識別(含位置信息版)識別圖片中的文字信息(包含文字區域的坐標信息)"
    },
    {
      "words": "通用文字識別(高精度含位置更高精度地識別圖片中的文字信息(包含文字區域的坐標信息)"
    },
    {
      "words": "通用文字識別(含生僻字版)識別圖片中的文字信息(包含對常見字和生僻字的識別)"
    },
    {
      "words": "網絡片文字識別"
    },
    {
      "words": "識別一些網絡上背景復雜,特殊字體的文字"
    },
    {
      "words": "身份證識別"
    },
    {
      "words": "識別身份證正反面的文字信息"
    },
    {
      "words": "銀行卡識另"
    },
    {
      "words": "識別銀行卡的卡號並返回發卡行和卡片性質信息"
    },
    {
      "words": "識別機動車駕駛證所有關鍵字段"
    },
    {
      "words": "行駛證識別"
    },
    {
      "words": "識別機動車行駛證所有關鍵字段"
    }
  ]
}}

  

5.總結:

文字截圖,基本是可以完整讀出來的。

 

參考:https://www.cnblogs.com/xiongze520/p/11283484.html

 


免責聲明!

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



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