本文主要讨论c#开发使用百度文字识别ocr来识别文字,本文最后会提供本安全源代码以及运行软件包,如有需要可自行下载

开发流程如下:

1. 创建百度应用:

  创建应用之后就能看到创建完的应用和 api key 以及 secret key了,在调用api时需传入这些配置值

  详见:

2. 引用 baidu.aip (sdk)

  baidu.aip 封闭了文字识别ocr api 的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", "true"},
          {"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. 源代码及软件包下载

软件开源代码地址(集成项目):

运行软件包下载地址(.net framework 4.5): https://pan.baidu.com/s/1z-wfdghhep8tqlqwp9i0mw  提取码:  r3sk 

作者:沐汐 vicky
出处:http://www.cnblogs.com/easyinvoice

以上就是c# 开发文字识别软件的详细内容,更多关于c# 文字识别的资料请关注www.887551.com其它相关文章!