C#:调用百度接口实现文字识别(准备做一个截图文字识别软件)

近期在做毕业设计,发现查看论文的时间太多了,然而百度文库或是PDF的文档要想复制真是费劲至极,于是准备做一个个人使用的截图文字识别软件,可以提高工作效率。那下面就做个简单介绍。
第一步:获取到你的APP_ID 、API_KEY 、SECRET_KEY(自行百度锻炼解决问题的能力)。
第二步:导入接口的dll文件。
第三步:调用接口函数,传入API_KEY、SECRET_KEY
下面看代码:
using Baidu.Aip.Ocr;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 百度Demo
{
public class Program
{
static void Main(string[] args)
{
// 设置APPID/AK/SK
var APP_ID = “你申请的”;
var API_KEY = “你申请的”;
var SECRET_KEY = “你申请的”;

        var client = new Baidu.Aip.Ocr.Ocr(API_KEY, SECRET_KEY);
        client.Timeout = 60000; // 修改超时时间

        Program bai = new Program();
        // bai.GeneralBasicUrlDemo(client);  //图片URL地址调用
        bai.GeneralBasicDemo(client);  //图片本地地址调用
    }

    public void GeneralBasicDemo(Ocr client)
    {
        StringBuilder sb = new StringBuilder();
        var image = File.ReadAllBytes(@"C:\Users\syc\Desktop\截图\0.png");
        // 调用通用文字识别, 图片参数为本地图片,可能会抛出网络等异常,请使用try/catch捕获
        var result = client.GeneralBasic(image);//result返回的是json字串
		//为了看出效果,先用双重循环解析出文字(效率极低,后期肯定是用正则表达式解析其结果)	
        foreach (var item in result.Last)
        {
            foreach (var o in item)
            {
                sb.AppendLine(o["words"].ToString());
            }
            
        }

        Console.WriteLine(sb);
        
        //Console.WriteLine(result.ToString());
        #region 如果有可选参数
        //// 如果有可选参数
        //var options = new Dictionary{
        //{"language_type", "CHN_ENG"},
        //{"detect_direction", "true"},
        //{"detect_language", "true"},
        //{"probability", "true"}
        //};
        //// 带参数调用通用文字识别, 图片参数为本地图片
        //result = client.GeneralBasic(image, options);
        //Console.WriteLine(result);
        #endregion

        Console.ReadKey();
    }
}

}

看看效果图:
英文图片:C#:调用百度接口实现文字识别(准备做一个截图文字识别软件)_第1张图片
中文图片:
C#:调用百度接口实现文字识别(准备做一个截图文字识别软件)_第2张图片
等我做所有的功能后(截图+多语种翻译),将会分享程序给大家免费使用。

欢迎小伙伴儿发言讨论,共同进步;
QQ:1170407931

你可能感兴趣的:(个人经验之谈,.NET)