本人是学软件开发的在校学生,因为之前要做一个小型的程序(PC端的截图工具)。在实现基本功能后想要增加一些额外的功能,
偶然的逛到了百度AI开发平台,突发奇想要加一个图像识别功能进来(因为百度AI接口大部分免费的,不用白不用(*^▽^*)),就写了
这么一个Demo。
开始进入主题:
要使用百度的接口,首先就是得要弄到百度接口的API Key啦,这个比较容易实习,不会的同学百度一下你就知道。
在获取到API Key后开始创建一个winfrom程序
简单的布局一下,一个图片框,一个文本框,两个按钮,一个下拉框(简单的做一个demo,不考虑美观)
其次是要创建一个类,用来解析百度接口返回的json数据
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CarAir
{
/// <summary>
/// 定义与百度返回的json数据相同的类
/// </summary>
public class Baike_info
{
public string baike_url { get; set; }
public string image_url { get; set; }
public string description { get; set; }
}
public class Result
{
public string score { get; set; }
public string root { get; set; }
public Baike_info baike_info { get; set; }
public string keyword { get; set; }
}
public class RootObject
{
public string log_id { get; set; }
public string result_num { get; set; }
public List<Result> result { get; set; }
}
}
其次是定义一个获取返回数据的方法
public static void Get()
{
// 设置APPID/AK/SK
var APP_ID = "申请到的ID";
var API_KEY = "申请到的KEY";
var SECRET_KEY = "申请到的SECRET_KEY";
var client = new Baidu.Aip.ImageClassify.ImageClassify(API_KEY, SECRET_KEY);
client.Timeout = 60000; // 修改超时时间
var image = File.ReadAllBytes(Path);//path是上传的图片路径
// 调用通用物体识别,可能会抛出网络等异常,请使用try/catch捕获
try
{
var result = client.AdvancedGeneral(image);
// 如果有可选参数
var options = new Dictionary<string, object>{
{"baike_num", 5}};
result = client.AdvancedGeneral(image, options);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
获取到的json类型数据result就是接口返回的结果,接下来的解析result就得到想要的内容了
结果:
第一次写分享文档,不足之处请大家多多包涵(*^▽^*)