使用百度C#图像识别SDK进行图像识别
1.首先,在百度AI平台进行注册登录:百度AI
2.然后点开右上角的控制台,找到图像识别,创建应用,然后就可以看到创建的**
3.打开Vs2017,创建Windows窗体应用,然后添加两个Label,分别命名为Info1,Info2,添加一个按钮,一个pictureBox,pictureBox取名为pictureBox1,然后点开按钮。
4.然后去百度SDK下载要用到的引用,下过来可能有很多个Net版本的,可以在这里自己查看Net版本
5.然后把我们sdk引用尽我们的工程里面。
6.回到脚本,引入相应的命名空间
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Baidu.Aip;
using System.IO;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using AForge.Video.DirectShow;
namespace BaiDuTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Btn_Click(object sender, EventArgs e)
{
AdvancedGeneralDemo();
}
public void AdvancedGeneralDemo()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
string _path = ofd.FileName;
// 设置APPID/AK/SK,回到刚才的创建的控制台,找到之后直接复制回来设置
var APP_ID = "设置你的AppID";
var API_KEY = "设置你的API Key";
var SECRET_KEY = "设置你的Secret Key";
var client = new Baidu.Aip.ImageClassify.ImageClassify(API_KEY, SECRET_KEY);
client.Timeout = 60000; // 修改超时时间
//var image = File.ReadAllBytes(Application.LocalUserAppDataPath + "/Earth.jpg");
if (!_path.Contains(".jpg"))//判断有没有打开一张图片,如果路径有问题,会马上报错
{
return;
}
else
{
var image = File.ReadAllBytes(_path);
pictureBox1.Image = Image.FromFile(_path);
// 调用通用物体识别,可能会抛出网络等异常,请使用try/catch捕获
var result = client.AdvancedGeneral(image);
string intext = result.ToString();
Info1.Text = result.ToString();
JObject json1 = (JObject)JsonConvert.DeserializeObject(intext);
JArray array = (JArray)json1["result"];
foreach (var item in array)
{
info2.Text = item["keyword"].ToString();//直接使用遍历通过键获得相应的值
break;
}
// 如果有可选参数
var options = new Dictionary<string, object>{
{"baike_num", 5}
};
// 带参数调用通用物体识别
result = client.AdvancedGeneral(image, options);
string info = result.ToString();
File.WriteAllText("H:/图像识别/Info.txt", info, Encoding.Default);
}
}
}
7.效果: