国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

人臉認(rèn)證源碼faceIdentify詳解

2020-01-24 00:02:54
字體:
供稿:網(wǎng)友

本文實(shí)例為大家分享了人臉認(rèn)證源碼faceIdentify的具體代碼,供大家參考,具體內(nèi)容如下

人臉認(rèn)證:

using AForge.Video.DirectShow;using face;using Newtonsoft.Json;using Newtonsoft.Json.Linq;using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.SqlClient;using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace Camtest{ public partial class faceIdentify : Form {  public faceIdentify()  {   InitializeComponent();   //啟動(dòng)默認(rèn)在屏幕中間   this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;  }  //Api_Key  public static string Api_Key = "OVYw5Ok0y9U8n6CfVPYt0wfZ";  //Secret_Key  public static string Secret_Key = "aCN3lupCarq3rC9G8Rylqz1d36Towp8G";  FilterInfoCollection videoDevices;  VideoCaptureDevice videoSource;  public int selectedDeviceIndex = 0;  public int selectedPICIndex = 0;  //窗體加載  private void faceIdentify_Load(object sender, EventArgs e)  {   //顯示為正在檢測   this.label1.Text = this.label2.Text = this.label6.Text = this.label9.Text = "正在識別";   // 刷新可用相機(jī)的列表   videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);   comboBoxCameras.Items.Clear();   for (int i = 0; i < videoDevices.Count; i++)   {    comboBoxCameras.Items.Add(videoDevices[i].Name.ToString());   }   if (comboBoxCameras.Items.Count > 0)    comboBoxCameras.SelectedIndex = 0;   picsize.SelectedIndex = 0;   //打開攝像頭   openCamera();  }  //打開攝像頭  public void openCamera()  {   selectedPICIndex = picsize.SelectedIndex;   selectedDeviceIndex = comboBoxCameras.SelectedIndex;   //連接攝像頭。   videoSource = new VideoCaptureDevice(videoDevices[selectedDeviceIndex].MonikerString);   videoSource.VideoResolution = videoSource.VideoCapabilities[selectedDeviceIndex];   // 枚舉所有攝像頭支持的像素,設(shè)置拍照為1920*1080   foreach (VideoCapabilities capab in videoSource.VideoCapabilities)   {    if (selectedPICIndex == 0)    {     if (capab.FrameSize.Width == 1920 && capab.FrameSize.Height == 1080)     {      videoSource.VideoResolution = capab;      break;     }     if (capab.FrameSize.Width == 1280 && capab.FrameSize.Height == 720)     {      videoSource.VideoResolution = capab;      break;     }    }    else    {     if (capab.FrameSize.Width == 1280 && capab.FrameSize.Height == 720)     {      videoSource.VideoResolution = capab;      break;     }    }   }   videoSourcePlayer1.VideoSource = videoSource;   // set NewFrame event handler   videoSourcePlayer1.Start();  }  /// <summary>  /// 簽到的按鈕  /// 先保存圖片,然后進(jìn)行比較,獲取的id,查詢  /// </summary>  /// <param name="sender"></param>  /// <param name="e"></param>  private void qiandao_Click(object sender, EventArgs e)  {   Users users = FaceIdentifys(SavePicture());   this.label1.Text = users.age.ToString();   this.label2.Text = users.name;   this.label6.Text = users.phone;   this.label9.Text = users.address;   if (users.picture != null)   {    this.pictureBox1.Image = Image.FromFile(users.picture, false);   }  }  //關(guān)閉窗口  private void faceIdentify_FormClosing(object sender, FormClosingEventArgs e)  {   DialogResult r = MessageBox.Show("確定要退出程序?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);   if (r != DialogResult.OK)   {    e.Cancel = true;   }   videoSourcePlayer1.Stop();//停止攝像頭   videoSourcePlayer1.Dispose();  }  /// <summary>  /// 人臉識別  /// </summary>  /// <param name="filename"></param>  public static Users FaceIdentifys(string filename)  {   long id = 0;   string ids = "";   double scores_num = 0;   Users user = new Users();   var client = new Baidu.Aip.Face.Face(Api_Key, Secret_Key);   var image1 = File.ReadAllBytes(filename);   var result = client.User.Identify(image1, new[] { "gr_test" }, 1, 1);   //先判斷臉是不是在上面,在繼續(xù)看有匹配的沒,否則提示放上臉   //得到根節(jié)點(diǎn)   JObject jo_result = (JObject)JsonConvert.DeserializeObject(result.ToString());   if ((string)jo_result["error_msg"] != null)   {    MessageBox.Show("對不起,請把臉放上!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);   }   else   {    //檢測到臉    //得到result節(jié)點(diǎn)    JArray jo_age = (JArray)JsonConvert.DeserializeObject(jo_result["result"].ToString());    foreach (var val in jo_age)    {     id = long.Parse(((JObject)val)["uid"].ToString()); //獲取uid     string scores = ((JObject)val)["scores"].ToString();//獲取scores     int num1 = scores.IndexOf("/n") + 2;     int num2 = scores.LastIndexOf("]")-8;     ids = scores.Substring(num1, num2);     scores_num =double.Parse(ids);    }    if (scores_num > 80)    {     user = QueryUsersById(id);     if (user.id != 0)     {      MessageBox.Show("簽到成功,已檢測到您的信息", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);     }     else     {      MessageBox.Show("對不起,系統(tǒng)根據(jù)您的臉未檢測到信息", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);     }    }    else {     MessageBox.Show("對不起,系統(tǒng)根據(jù)您的臉未檢測到信息", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);    }   }   return user;  }  /// <summary>  /// 保存圖片  /// </summary>  public string SavePicture()  {   if (videoSource == null)   {    return null;   }   Bitmap bitmap = videoSourcePlayer1.GetCurrentVideoFrame();   //圖片名稱,年月日時(shí)分秒毫秒.jpg   string fileName = DateTime.Now.ToString("yyyyMMddHHmmssff") + ".jpg";   //獲取項(xiàng)目的根目錄   string path = AppDomain.CurrentDomain.BaseDirectory;   string picture = path + "http://picture//" + fileName;   //將圖片保存在服務(wù)器里面   bitmap.Save(picture, ImageFormat.Jpeg);   bitmap.Dispose();   return picture;  }  /// <summary>  /// 根據(jù)編號查詢用戶信息  /// </summary>  /// <param name="id"></param>  /// <returns></returns>  public static Users QueryUsersById(long id)  {   Users user = new Users();   string sql = "select * from users where id = @id";   using (SqlDataReader reader = SqlHelper.ExcuteReader(sql, CommandType.Text, new SqlParameter("@id", id)))   {    if (reader.Read())    {     user.id = long.Parse(reader[0].ToString());     user.name = reader[1].ToString();     user.age = Convert.ToInt32(reader[2]);     user.phone = reader[3].ToString();     user.password = reader[4].ToString();     user.address = reader[5].ToString();     user.picture = reader[6].ToString();    }   }   return user;  }  //取消的按鈕  private void close_Click(object sender, EventArgs e)  {   //停止攝像頭   videoSourcePlayer1.Stop();   this.Close();   welcome we = new welcome();   we.Show();  } }}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黄龙县| 日喀则市| 黄大仙区| 泸州市| 茶陵县| 遵化市| 呼图壁县| 龙泉市| 界首市| 临桂县| 蒙城县| 绥滨县| 陈巴尔虎旗| 郎溪县| 寻甸| 营山县| 大化| 富民县| 连山| 武乡县| 五常市| 甘洛县| 绥化市| 抚宁县| 宜都市| 娱乐| 曲靖市| 乌海市| 石屏县| 阿克陶县| 巴彦淖尔市| 平阳县| 蓬安县| 承德市| 大埔区| 武川县| 郯城县| 阳春市| 刚察县| 安塞县| 读书|