使用百度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.效果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章