欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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.打开百度智能云官网进行注册后登陆。
C#基于百度Ai开放平台进行个人文字识别
2.进入文字识别工作台,这有很多接口可以都试试。
C#基于百度Ai开放平台进行个人文字识别
3.创建应用
C#基于百度Ai开放平台进行个人文字识别
C#基于百度Ai开放平台进行个人文字识别
C#基于百度Ai开放平台进行个人文字识别4.管理应用
C#基于百度Ai开放平台进行个人文字识别
C#基于百度Ai开放平台进行个人文字识别

3.程序部分

1.界面
C#基于百度Ai开放平台进行个人文字识别
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;}
    }

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