• 识别图片中文字(百度AI)


       这个是百度官方的文档         https://ai.baidu.com/docs#/OCR-API/top

       通用的文字识别,如果是其他的含生僻字/含位置信息的版本,请参考官方的文档,只需要在请求时发送不同的参数即可

       根据文档简单的使用一般处理程序完成 百度 中文字识别的功能,下面是主方法:

        private static String clientId = "**************"; // 百度云中开通对应服务应用的 API Key 建议开通应用的时候多选服务
        // 百度云中开通对应服务应用的 Secret Key
        private static String clientSecret = "***************";//注意不要加空格
    
        public void ProcessRequest(HttpContext context) {
            context.Response.ContentType = "text/plain";string token_ = getAccessToken();
            string return_font = general(token_, "123.jpg");
            //string json = JsonConvert.SerializeObject(return_font);
            context.Response.Write(return_font);
        }

        /// <summary>
        /// 获取token
        /// </summary>
        /// <returns></returns>
        public static String getAccessToken()
        {
            String authHost = "https://aip.baidubce.com/oauth/2.0/token";
            HttpClient client = new HttpClient();
            List<KeyValuePair<String, String>> paraList = new List<KeyValuePair<string, string>>();
            paraList.Add(new KeyValuePair<string, string>("grant_type", "client_credentials"));
            paraList.Add(new KeyValuePair<string, string>("client_id", clientId));
            paraList.Add(new KeyValuePair<string, string>("client_secret", clientSecret));
    
            HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result;
            String result = response.Content.ReadAsStringAsync().Result;
            string token_ = result.Split(',')[0].Split(':')[1];
            token_ = token_.Substring(1, token_.Length-2);
    
            return token_;
        }
    /// <summary>
        /// 获取图片中的文字
        /// </summary>
        /// <param name="token"></param>
        /// <param name="image_path">图片路径</param>
        /// <returns></returns>
        public static string general(string token,string image_path)
        {
            string strbaser64 = base64(image_path);//将图片转为base64
    
            string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/general?access_token=" + token;
            Encoding encoding = Encoding.Default;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
            request.Method = "post";
            request.ContentType = "application/x-www-form-urlencoded";
            request.KeepAlive = true;
            String str = "image=" + HttpUtility.UrlEncode(strbaser64);
            byte[] buffer = encoding.GetBytes(str);
            request.ContentLength = buffer.Length;
            request.GetRequestStream().Write(buffer, 0, buffer.Length);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
            string result = reader.ReadToEnd();
            return result;
        }
    
        /// <summary>
        /// 将图片转为base64
        /// </summary>
        /// <param name="image_name"></param>
        /// <returns></returns>
        public static string base64(string image_name) {
            FileInfo file = new FileInfo(image_name);
            var stream = file.OpenRead();
            byte[] buffer = new byte[file.Length];
            //读取图片字节流
            stream.Read(buffer, 0, Convert.ToInt32(file.Length));
            return Convert.ToBase64String(buffer);
    
        }

         其中两个公共变量分别是如下图:

        以上就是全部代码了,返回值就是识别的图片中的文字。

  • 相关阅读:
    DOM event beforeload
    有关点击付费的十大失误-转载
    DOM 事件DOMContentLoaded
    Git 系列之四:Git 进阶功能转载
    Qt webkit中单独编译JavaScriptCore
    搜索知识与技巧集锦转载
    webkit中DOM 事件有多少
    Git 系列之三:Windows 下 Git 配置与使用指南转载
    简历:第一章:技术亮点如何写
    实战:第十三章:工作中熬夜加班学到的
  • 原文地址:https://www.cnblogs.com/renyuanhao/p/8715089.html
Copyright © 2020-2023  润新知