百度图片识别API使用

1.注册百度AI,这个步骤要获得3样东西,这三样东西得到后是有次数和时间限制的,如果做学术研究可以忽略:

https://blog.csdn.net/qq_40484582/article/details/82054009 (引用)
(1)AK:API_KEY;
(2)SK:SECRET_KEY;
(3)AT:access_token

如果获得了前两个可以直接填写这个链接到浏览器(或者cn.bing.com/?toHttps=1&redig=A4DDA4194C544F0B98D53B777EAB03A5),找一下就能找到access_token:

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】

2.调用百度API(我的环境是visual studio)

https://cloud.baidu.com/doc/OCR/s/vk3h7y58v

 2.1下载百度的SDK

http://ai.baidu.com/sdk#search

因为使用的是C#,所以我下载下来就好几个文件夹:

Baidu.Aip
    ├── net35(这个指的是.Net版本)
    │   ├── AipSdk.dll             // 百度AI服务 windows 动态库
    │   ├── AipSdk.xml             // 注释文件
    │   └── Newtonsoft.Json.dll    // 第三方依赖
    ├── net40
    ├── net45
    └── netstandard2.0
        ├── AipSdk.deps.json
        └── AipSdk.dll

 2.2 VS 调用

把.AipSdk.dll 和 Newtonsoft.Json.dll放到当前工程的Debug文件夹下。

然后在VS里面加入引用

2.3程序调用:

using System.Windows.Forms;
using System.IO;
using System.Text.RegularExpressions;
using System.Runtime.InteropServices;
using System.Drawing.Imaging;
using System.Net.Http;
using System.Net;
using System.Web;        
// 通用文字识别(高精度含位置版)
public static string accurate()
{
	string token = "24.08c4557c1c6ca46c71eacde1200fb911.2592000.1588499297.282335-19243980";
	//string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate?access_token=" + token;
	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.KeepAlive = true;
	// 图片的base64编码
	string base64 = getFileBase64((System.IO.Directory.GetCurrentDirectory() + "test.jpg"));
	String str = "image=" + HttpUtility.UrlEncode(base64);
	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.Default);
	string result = reader.ReadToEnd();
	Console.WriteLine("通用文字识别(高精度含位置版):");
	Console.WriteLine(result);
	return result;
}

public static String getFileBase64(String fileName)
{
	FileStream filestream = new FileStream(fileName, FileMode.Open);
	byte[] arr = new byte[filestream.Length];
	filestream.Read(arr, 0, (int)filestream.Length);
	string baser64 = Convert.ToBase64String(arr);
	filestream.Close();
	return baser64;
}

猜你喜欢

转载自blog.csdn.net/daijiaruan5860/article/details/105301231