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<string, object>{
//{"language_type", "CHN_ENG"},
//{"detect_direction", "true"},
//{"detect_language", "true"},
//{"probability", "true"}
//};
//// 带参数调用通用文字识别, 图片参数为本地图片
//result = client.GeneralBasic(image, options);
//Console.WriteLine(result);
#endregion
Console.ReadKey();
}
}
}
看看效果图:
英文图片:
中文图片:
等我做所有的功能后(截图+多语种翻译),将会分享程序给大家免费使用。
欢迎小伙伴儿发言讨论,共同进步;
QQ:1170407931