C#基于百度Ai开放平台进行个人文字识别

    技术2022-07-16  67

    1.下载dll

    1.在官方网站下载C# SDK压缩工具包。 2.解压后,将 AipSdk.dll 和 Newtonsoft.Json.dll 中添加为引用。

    2.获取API Key/Secret Key

    1.打开百度智能云官网进行注册后登陆。 2.进入文字识别工作台,这有很多接口可以都试试。 3.创建应用 4.管理应用

    3.程序部分

    1.界面 2.代码 上传照片访问Api,输出字符串

    string savePath = null; //保存路径文件夹 string newPath = null; //保存路径 string photoName = null; //图片名称 string saveName = null; //保存名称 /// <summary> /// 上传照片访问Api,输出字符串 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { //上传照片 OpenFileDialog op = new OpenFileDialog(); if (op.ShowDialog() == DialogResult.OK) { UploadPhoto(op); } //访问API var result = GetBaiDuApi(); //获取字符串"["位置 int IndexofA = result.ToString().IndexOf("["); int IndexofB = result.ToString().IndexOf("]"); //截取位数字符串 string baiDuApiJson = result.ToString().Substring(IndexofA, IndexofB - IndexofA + 1); //JSON转List JavaScriptSerializer baiDuApiSerializer = new JavaScriptSerializer(); List<model> wordsModelList = baiDuApiSerializer.Deserialize<List<model>>(baiDuApiJson); //list转string List<string> StrList = new List<string>(); wordsModelList.ForEach(t => { string str = null; if (!string.IsNullOrEmpty(t.words)) str = t.words; StrList.Add(str); }); string resultStr = string.Join("", StrList.ToArray()); //文本框输出字符串 this.textBox1.Text = resultStr; }

    上传图片

    /// <summary> /// 上传照片 /// </summary> /// <returns></returns> private void UploadPhoto(OpenFileDialog op) { FileInfo fi = new FileInfo(op.FileName); if (fi.Exists) { //获取所在项目目录+"\temp" savePath = System.Windows.Forms.Application.StartupPath + @"\temp"; photoName = fi.Name; //确保文件名称唯一性 saveName = photoName.Substring(0, photoName.LastIndexOf(".")) + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "." + photoName.Substring(photoName.LastIndexOf(".") + 1); //savePath=@"D:\temp"; //saveName="result.txt"; //newPath = "D:\temp\result.txt"; newPath = Path.Combine(savePath, saveName); //是否存在这个文件夹==存在?跳过:创建; if (!Directory.Exists(savePath)) { Directory.CreateDirectory(savePath); } //保存照片 fi.CopyTo(newPath); } }

    访问百度API

    /// <summary> /// 访问百度API /// </summary> /// <returns></returns> public JObject GetBaiDuApi() { var API_KEY = "你的 Api Key"; var SECRET_KEY = "你的 Secret Key"; //访问接口 var client = new Baidu.Aip.Ocr.Ocr(API_KEY, SECRET_KEY); client.Timeout = 60000; // 修改超时时间 var image = File.ReadAllBytes(newPath); //var url = "图片网址"; // 调用通用文字识别, 图片参数为本地图片,可能会抛出网络等异常,请使用try/catch捕获 //用户向服务请求识别某张图中的所有文字 var result = client.GeneralBasic(image); //本地图图片 //var result = client.GeneralBasicUrl(url); //网络图片 //var result = client.Accurate(image); //本地图片:相对于通用文字识别该产品精度更高,但是识别耗时会稍长。 //var result = client.General(image); //本地图片:通用文字识别(含位置信息版) //var result = client.GeneralUrl(url); //网络图片:通用文字识别(含位置信息版) //var result = client.GeneralEnhanced(image); //本地图片:调用通用文字识别(含生僻字版) //var result = client.GeneralEnhancedUrl(url); //网络图片:调用通用文字识别(含生僻字版) //var result = client.WebImage(image); //本地图片:用户向服务请求识别一些背景复杂,特殊字体的文字。 //var result = client.WebImageUrl(url); //网络图片:用户向服务请求识别一些背景复杂,特殊字体的文字。 return result; }

    model

    /// <summary> /// model /// </summary> public class model { public string words{get;set;} }

    博主也是小白,有什么不懂的可以留言,共同进步。

    Processed: 0.013, SQL: 10