C#基于百度Ai开放平台进行个人文字识别
程序员文章站
2024-03-16 10:15:07
...
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);
//aaa@qq.com"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;}
}
博主也是小白,有什么不懂的可以留言,共同进步。
上一篇: Weex实践