winfrom窗体调用人脸识别Api

该文详细描述了如何利用百度AI的人脸识别API进行图像匹配。首先注册并获取APIKey和SecretKey,然后获取access_token,接着将图片转换为Base64编码并构造HTTPPOST请求,最后解析响应以判断人脸识别的结果。代码示例展示了从匹配到结果判断的完整过程。
摘要由CSDN通过智能技术生成

第一步,注册百度al进行登入  

第二部,找到人脸识别,并创建公有云获取API Key和Secret Key

 

第三步,找到人脸识别API文档

第四步,获取 access_token

第五步 ,把对应的参数流写入http请求中 (注意这是方法,还调用了上面GetAccessToken()方法,这里需要上传两张照片,以json格式)

string access_token = GetAccessToken();
            string url = "https://aip.baidubce.com/rest/2.0/face/v3/match?access_token=" + access_token + "";
            //Bitmap image=(Bitmap)pictureBox1.Image;
            string base64image = ImageToBase64(a+".jpg");//以自己情况,把图片放在Debag目录下的照片
            string base64image1 = ImageToBase64("kl.jpeg");//以自己情况,把图片放在Debag目录下的照片


//这里需要上传两张照片
            string str = "\r\n[\r\n    {\r\n        \"image\": \"" + base64image + "\",\r\n        \"image_type\": \"BASE64\",\r\n        \"face_type\": \"LIVE\",\r\n        \"quality_control\": \"LOW\",\r\n        \"liveness_control\": \"HIGH\"\r\n     },\r\n     {\r\n         \"image\": \"" + base64image1 + "\",\r\n         \"image_type\": \"BASE64\",\r\n         \"face_type\": \"IDCARD\",\r\n         \"quality_control\": \"LOW\",\r\n         \"liveness_control\": \"HIGH\"\r\n     }\r\n ]";
            byte[] bytes = Encoding.UTF8.GetBytes(str);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.ContentType = "application/json";
            request.ContentLength = bytes.Length;
            request.GetRequestStream().Write(bytes, 0, bytes.Length);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
            string content = sr.ReadToEnd();
            sr.Close();

            //反序列化content
            JObject date = JsonConvert.DeserializeObject<JObject>(content);
            string datestr = date["result"].ToString();

            //再次反序列化datestr
            JObject da = JsonConvert.DeserializeObject<JObject>(datestr);
            string datejson = da["score"].ToString();//获取闽值

            try
            {
                if (Convert.ToDouble(datejson.ToString()) >= 80)
                {
                    MessageBox.Show("人脸识别成功!");
                    return;
                }
                else
                {
                    MessageBox.Show("人脸识别失败,请重试!");
                    return;
                }

            }
            catch (Exception)
            {

                throw;
            }
        }

图片转base64的ImageToBase64()方法

private string ImageToBase64(string fileFullName)
        {
            Bitmap bmp = new Bitmap(fileFullName);
            MemoryStream ms = new MemoryStream();
            bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
            byte[] arr = new byte[ms.Length]; ms.Position = 0;
            ms.Read(arr, 0, (int)ms.Length); ms.Close();

            return Convert.ToBase64String(arr);

        }

第六步,在按钮中 调用方法 Contrast();

 界面可以自行搭建,

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值