Вячеслав Терешенко 2 роки тому
батько
коміт
4ca68935d1

+ 177 - 20
T FaceRecognizer/FormMain.Designer.cs

@@ -71,10 +71,21 @@
             this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.tabPage4 = new System.Windows.Forms.TabPage();
+            this.BtnSaveParameters = new System.Windows.Forms.Button();
+            this.CbxSaveSizeForm = new System.Windows.Forms.CheckBox();
+            this.CbxSaveLocationForm = new System.Windows.Forms.CheckBox();
+            this.CmbCams = new System.Windows.Forms.ComboBox();
             this.label7 = new System.Windows.Forms.Label();
             this.tabPage5 = new System.Windows.Forms.TabPage();
-            this.label6 = new System.Windows.Forms.Label();
             this.SplitContainer = new System.Windows.Forms.SplitContainer();
+            this.PanelTitle = new System.Windows.Forms.Panel();
+            this.PbxLogo = new System.Windows.Forms.PictureBox();
+            this.LblTitle = new System.Windows.Forms.Label();
+            this.GbxInfo = new System.Windows.Forms.GroupBox();
+            this.label6 = new System.Windows.Forms.Label();
+            this.label8 = new System.Windows.Forms.Label();
+            this.label9 = new System.Windows.Forms.Label();
+            this.label10 = new System.Windows.Forms.Label();
             ((System.ComponentModel.ISupportInitialize)(this.PbxFaces)).BeginInit();
             this.PanelMenu.SuspendLayout();
             this.PanSettings.SuspendLayout();
@@ -100,6 +111,9 @@
             this.SplitContainer.Panel1.SuspendLayout();
             this.SplitContainer.Panel2.SuspendLayout();
             this.SplitContainer.SuspendLayout();
+            this.PanelTitle.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.PbxLogo)).BeginInit();
+            this.GbxInfo.SuspendLayout();
             this.SuspendLayout();
             // 
             // PbxFaces
@@ -490,11 +504,11 @@
             this.tabPage2.Controls.Add(this.BtnIn);
             this.tabPage2.Controls.Add(this.BtnOut);
             this.tabPage2.Controls.Add(this.PbxIdentification);
-            this.tabPage2.Location = new System.Drawing.Point(4, 30);
+            this.tabPage2.Location = new System.Drawing.Point(4, 22);
             this.tabPage2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
             this.tabPage2.Name = "tabPage2";
             this.tabPage2.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
-            this.tabPage2.Size = new System.Drawing.Size(429, 355);
+            this.tabPage2.Size = new System.Drawing.Size(429, 363);
             this.tabPage2.TabIndex = 1;
             this.tabPage2.Text = "Ident";
             this.tabPage2.UseVisualStyleBackColor = true;
@@ -577,7 +591,7 @@
             this.DgbJournal.RowTemplate.DividerHeight = 5;
             this.DgbJournal.RowTemplate.Height = 35;
             this.DgbJournal.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
-            this.DgbJournal.Size = new System.Drawing.Size(423, 341);
+            this.DgbJournal.Size = new System.Drawing.Size(423, 349);
             this.DgbJournal.TabIndex = 0;
             this.DgbJournal.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DgbJournal_CellDoubleClick);
             // 
@@ -605,26 +619,75 @@
             // 
             // tabPage4
             // 
+            this.tabPage4.Controls.Add(this.BtnSaveParameters);
+            this.tabPage4.Controls.Add(this.CbxSaveSizeForm);
+            this.tabPage4.Controls.Add(this.CbxSaveLocationForm);
+            this.tabPage4.Controls.Add(this.CmbCams);
             this.tabPage4.Controls.Add(this.label7);
-            this.tabPage4.Location = new System.Drawing.Point(4, 22);
+            this.tabPage4.Location = new System.Drawing.Point(4, 30);
             this.tabPage4.Name = "tabPage4";
-            this.tabPage4.Size = new System.Drawing.Size(429, 363);
+            this.tabPage4.Size = new System.Drawing.Size(429, 355);
             this.tabPage4.TabIndex = 3;
             this.tabPage4.Text = "Settings";
             this.tabPage4.UseVisualStyleBackColor = true;
             // 
+            // BtnSaveParameters
+            // 
+            this.BtnSaveParameters.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.BtnSaveParameters.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(58)))), ((int)(((byte)(166)))), ((int)(((byte)(64)))));
+            this.BtnSaveParameters.ForeColor = System.Drawing.Color.White;
+            this.BtnSaveParameters.Location = new System.Drawing.Point(79, 308);
+            this.BtnSaveParameters.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+            this.BtnSaveParameters.Name = "BtnSaveParameters";
+            this.BtnSaveParameters.Size = new System.Drawing.Size(341, 37);
+            this.BtnSaveParameters.TabIndex = 4;
+            this.BtnSaveParameters.Text = "Применить новые параметры";
+            this.BtnSaveParameters.UseVisualStyleBackColor = false;
+            this.BtnSaveParameters.Click += new System.EventHandler(this.BtnSaveParameters_Click);
+            // 
+            // CbxSaveSizeForm
+            // 
+            this.CbxSaveSizeForm.AutoSize = true;
+            this.CbxSaveSizeForm.Location = new System.Drawing.Point(7, 93);
+            this.CbxSaveSizeForm.Name = "CbxSaveSizeForm";
+            this.CbxSaveSizeForm.Size = new System.Drawing.Size(219, 25);
+            this.CbxSaveSizeForm.TabIndex = 3;
+            this.CbxSaveSizeForm.Text = "Сохранять размеры окна";
+            this.CbxSaveSizeForm.UseVisualStyleBackColor = true;
+            // 
+            // CbxSaveLocationForm
+            // 
+            this.CbxSaveLocationForm.AutoSize = true;
+            this.CbxSaveLocationForm.Location = new System.Drawing.Point(7, 62);
+            this.CbxSaveLocationForm.Name = "CbxSaveLocationForm";
+            this.CbxSaveLocationForm.Size = new System.Drawing.Size(385, 25);
+            this.CbxSaveLocationForm.TabIndex = 2;
+            this.CbxSaveLocationForm.Text = "Сохранять положение окна после перезапуска";
+            this.CbxSaveLocationForm.UseVisualStyleBackColor = true;
+            // 
+            // CmbCams
+            // 
+            this.CmbCams.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CmbCams.FormattingEnabled = true;
+            this.CmbCams.Location = new System.Drawing.Point(153, 8);
+            this.CmbCams.Name = "CmbCams";
+            this.CmbCams.Size = new System.Drawing.Size(239, 29);
+            this.CmbCams.TabIndex = 1;
+            this.CmbCams.SelectedIndexChanged += new System.EventHandler(this.CmbCams_SelectedIndexChanged);
+            // 
             // label7
             // 
             this.label7.AutoSize = true;
             this.label7.Location = new System.Drawing.Point(3, 11);
             this.label7.Name = "label7";
-            this.label7.Size = new System.Drawing.Size(282, 21);
+            this.label7.Size = new System.Drawing.Size(144, 21);
             this.label7.TabIndex = 0;
-            this.label7.Text = "Настроить выбор активной камеры";
+            this.label7.Text = "Активная камера:";
             // 
             // tabPage5
             // 
-            this.tabPage5.Controls.Add(this.label6);
+            this.tabPage5.Controls.Add(this.GbxInfo);
+            this.tabPage5.Controls.Add(this.PanelTitle);
             this.tabPage5.Location = new System.Drawing.Point(4, 30);
             this.tabPage5.Name = "tabPage5";
             this.tabPage5.Size = new System.Drawing.Size(429, 355);
@@ -632,15 +695,6 @@
             this.tabPage5.Text = "Main";
             this.tabPage5.UseVisualStyleBackColor = true;
             // 
-            // label6
-            // 
-            this.label6.AutoSize = true;
-            this.label6.Location = new System.Drawing.Point(13, 11);
-            this.label6.Name = "label6";
-            this.label6.Size = new System.Drawing.Size(82, 21);
-            this.label6.TabIndex = 0;
-            this.label6.Text = "ГЛАВНАЯ";
-            // 
             // SplitContainer
             // 
             this.SplitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
@@ -659,6 +713,95 @@
             this.SplitContainer.SplitterDistance = 248;
             this.SplitContainer.TabIndex = 5;
             // 
+            // PanelTitle
+            // 
+            this.PanelTitle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(206)))), ((int)(((byte)(208)))), ((int)(((byte)(223)))));
+            this.PanelTitle.Controls.Add(this.LblTitle);
+            this.PanelTitle.Controls.Add(this.PbxLogo);
+            this.PanelTitle.Dock = System.Windows.Forms.DockStyle.Top;
+            this.PanelTitle.Location = new System.Drawing.Point(0, 0);
+            this.PanelTitle.Name = "PanelTitle";
+            this.PanelTitle.Size = new System.Drawing.Size(429, 100);
+            this.PanelTitle.TabIndex = 0;
+            // 
+            // PbxLogo
+            // 
+            this.PbxLogo.Dock = System.Windows.Forms.DockStyle.Right;
+            this.PbxLogo.Image = global::T_FaceRecognizer.Properties.Resources.FaceIcon;
+            this.PbxLogo.Location = new System.Drawing.Point(325, 0);
+            this.PbxLogo.Name = "PbxLogo";
+            this.PbxLogo.Size = new System.Drawing.Size(104, 100);
+            this.PbxLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+            this.PbxLogo.TabIndex = 0;
+            this.PbxLogo.TabStop = false;
+            // 
+            // LblTitle
+            // 
+            this.LblTitle.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.LblTitle.Font = new System.Drawing.Font("Segoe UI", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
+            this.LblTitle.Location = new System.Drawing.Point(0, 0);
+            this.LblTitle.Name = "LblTitle";
+            this.LblTitle.Size = new System.Drawing.Size(325, 100);
+            this.LblTitle.TabIndex = 1;
+            this.LblTitle.Text = "FaceTrack профессиональный";
+            this.LblTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+            // 
+            // GbxInfo
+            // 
+            this.GbxInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.GbxInfo.Controls.Add(this.label10);
+            this.GbxInfo.Controls.Add(this.label9);
+            this.GbxInfo.Controls.Add(this.label8);
+            this.GbxInfo.Controls.Add(this.label6);
+            this.GbxInfo.Location = new System.Drawing.Point(6, 110);
+            this.GbxInfo.Name = "GbxInfo";
+            this.GbxInfo.Size = new System.Drawing.Size(415, 237);
+            this.GbxInfo.TabIndex = 1;
+            this.GbxInfo.TabStop = false;
+            this.GbxInfo.Text = "О программе";
+            // 
+            // label6
+            // 
+            this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.label6.Location = new System.Drawing.Point(6, 38);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(388, 39);
+            this.label6.TabIndex = 0;
+            this.label6.Text = "• Простое добавление новых пользователей";
+            // 
+            // label8
+            // 
+            this.label8.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.label8.Location = new System.Drawing.Point(6, 88);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(403, 45);
+            this.label8.TabIndex = 1;
+            this.label8.Text = "• Идентификация учащихся при входе и выходе из учебного заведения";
+            // 
+            // label9
+            // 
+            this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.label9.Location = new System.Drawing.Point(6, 133);
+            this.label9.Name = "label9";
+            this.label9.Size = new System.Drawing.Size(403, 43);
+            this.label9.TabIndex = 2;
+            this.label9.Text = "• Просмотр журнала посещений для каждого пользователя";
+            // 
+            // label10
+            // 
+            this.label10.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.label10.Location = new System.Drawing.Point(6, 176);
+            this.label10.Name = "label10";
+            this.label10.Size = new System.Drawing.Size(403, 58);
+            this.label10.TabIndex = 3;
+            this.label10.Text = "• Настройка параметров приложения";
+            // 
             // FormMain
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 21F);
@@ -670,6 +813,7 @@
             this.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold);
             this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
             this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+            this.MinimumSize = new System.Drawing.Size(705, 428);
             this.Name = "FormMain";
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
             this.Text = "FaceTrack профессиональный";
@@ -700,11 +844,13 @@
             this.tabPage4.ResumeLayout(false);
             this.tabPage4.PerformLayout();
             this.tabPage5.ResumeLayout(false);
-            this.tabPage5.PerformLayout();
             this.SplitContainer.Panel1.ResumeLayout(false);
             this.SplitContainer.Panel2.ResumeLayout(false);
             ((System.ComponentModel.ISupportInitialize)(this.SplitContainer)).EndInit();
             this.SplitContainer.ResumeLayout(false);
+            this.PanelTitle.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.PbxLogo)).EndInit();
+            this.GbxInfo.ResumeLayout(false);
             this.ResumeLayout(false);
 
         }
@@ -750,12 +896,23 @@
         private System.Windows.Forms.TabPage tabPage3;
         private System.Windows.Forms.TabPage tabPage4;
         private System.Windows.Forms.TabPage tabPage5;
-        private System.Windows.Forms.Label label6;
         private System.Windows.Forms.Label label7;
         private System.Windows.Forms.DataGridView DgbJournal;
         private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
         private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
         private System.Windows.Forms.DataGridViewTextBoxColumn Column3;
+        private System.Windows.Forms.ComboBox CmbCams;
+        private System.Windows.Forms.CheckBox CbxSaveLocationForm;
+        private System.Windows.Forms.CheckBox CbxSaveSizeForm;
+        private System.Windows.Forms.Button BtnSaveParameters;
+        private System.Windows.Forms.Panel PanelTitle;
+        private System.Windows.Forms.Label LblTitle;
+        private System.Windows.Forms.PictureBox PbxLogo;
+        private System.Windows.Forms.GroupBox GbxInfo;
+        private System.Windows.Forms.Label label10;
+        private System.Windows.Forms.Label label9;
+        private System.Windows.Forms.Label label8;
+        private System.Windows.Forms.Label label6;
     }
 }
 

+ 130 - 1
T FaceRecognizer/FormMain.cs

@@ -17,6 +17,9 @@ using Emgu.CV.CvEnum;
 using System.Runtime.CompilerServices;
 using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;
 using System.Data.SqlClient;
+using Emgu.CV.Ocl;
+using DirectShowLib;
+using System.Runtime.Serialization.Formatters.Binary;
 
 namespace T_FaceRecognizer
 {
@@ -49,6 +52,12 @@ namespace T_FaceRecognizer
         private int TypeOperation = 0;
 
         private bool IsMenuOpened = true;
+
+        //доступные видеокамеры
+        private DsDevice[] WebCams = null;
+        int CountCams = -1;
+        HashSet<string> HtBefore = new HashSet<string>();
+        //включена ли на данный момент камера
         #endregion
         #region <Свойства>
 
@@ -316,6 +325,9 @@ values (@last,@first,@patr,@phone,@snils,@photo)
             TabPages.ItemSize = new Size(0, 1);
             TabPages.SizeMode = TabSizeMode.Fixed;
 
+            GetCams();
+            SetFormParameters();
+            
             TabPages.SelectTab(4);
         }
 
@@ -704,10 +716,36 @@ from Users";
             {
                 RecognizeOff();
             });
-
+            GetCams();
             TabPages.SelectTab(3);
         }
 
+        /// <summary>
+        /// получение списка доступных камер
+        /// </summary>
+        private void GetCams()
+        {
+            WebCams = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);
+            CountCams = WebCams.Length;
+
+            CmbCams.Items.Clear();
+            for (int i = 0; i < CountCams; i++)
+            {
+                CmbCams.Items.Add(WebCams[i].Name);
+                HtBefore.Add(WebCams[i].Name);
+            }
+
+            if (CountCams == 0)
+            {
+                MessageBox.Show("Камеры не обнаружены! Подключите камеру и перезапустите приложение.","FaceTrack",MessageBoxButtons.OK,MessageBoxIcon.Error);
+                this.Close();
+            }
+            else
+            {
+                CmbCams.SelectedIndex = SelectedCameraID;
+            }
+        }
+
         private void PanelMenu_Paint(object sender, PaintEventArgs e)
         {
             Invalidate();
@@ -715,8 +753,99 @@ from Users";
 
         private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
         {
+            ApplyNewParameters();
             RecognizeOff();
             Application.ExitThread();
         }
+
+        /// <summary>
+        /// применение настроек для формы
+        /// </summary>
+        private void ApplyNewParameters()
+        {
+            LocalSettings LocalSet = new LocalSettings();
+            LocalSet.SelectedCameraID = SelectedCameraID;
+            if (CbxSaveLocationForm.Checked)
+            {
+                LocalSet.PositionLocationX = this.Location.X;
+                LocalSet.PositionLocationY = this.Location.Y;
+            }
+            else
+            {
+                LocalSet.PositionLocationX = -1;
+                LocalSet.PositionLocationY = -1;
+            }
+
+            if (CbxSaveSizeForm.Checked)
+            {
+                LocalSet.FormWidth = this.Width;
+                LocalSet.FormHeight = this.Height;
+            }
+            else
+            {
+                LocalSet.FormWidth = -1;
+                LocalSet.FormHeight = -1;
+            }
+
+            StreamWriter Sw = new StreamWriter(Application.StartupPath + "\\localSettings.txt");
+            Sw.WriteLine(LocalSet.SelectedCameraID);
+            Sw.WriteLine(LocalSet.FormWidth);
+            Sw.WriteLine(LocalSet.FormHeight);
+            Sw.WriteLine(LocalSet.PositionLocationX);
+            Sw.WriteLine(LocalSet.PositionLocationY);
+            Sw.Close();
+        }
+        /// <summary>
+        /// получение ранее схранённых параметров формы
+        /// </summary>
+        private void SetFormParameters()
+        {
+            if (!File.Exists(Application.StartupPath + "\\localSettings.txt"))
+            {
+                return;
+            }
+            StreamReader Sr = new StreamReader(Application.StartupPath + "\\localSettings.txt");
+            LocalSettings CurrentSettings = new LocalSettings();
+            CurrentSettings.SelectedCameraID = int.Parse(Sr.ReadLine());
+            CurrentSettings.FormWidth = int.Parse(Sr.ReadLine());
+            CurrentSettings.FormHeight = int.Parse(Sr.ReadLine());
+            CurrentSettings.PositionLocationX = int.Parse(Sr.ReadLine());
+            CurrentSettings.PositionLocationY = int.Parse(Sr.ReadLine());
+            Sr.Close();
+
+            CbxSaveLocationForm.Checked = false;
+            CbxSaveSizeForm.Checked = false;
+            SelectedCameraID = CurrentSettings.SelectedCameraID;
+            try
+            {
+                CmbCams.SelectedIndex = SelectedCameraID;
+            }
+            catch
+            {
+                SelectedCameraID = 0;
+            }
+
+            if (CurrentSettings.FormWidth != -1 && CurrentSettings.FormHeight != -1)
+            {
+                CbxSaveSizeForm.Checked = true;
+                this.Size = new Size(CurrentSettings.FormWidth, CurrentSettings.FormHeight);
+            }
+            if (CurrentSettings.PositionLocationX != -1 && CurrentSettings.PositionLocationY != -1)
+            {
+                CbxSaveLocationForm.Checked = true;
+                this.Location = new Point(CurrentSettings.PositionLocationX, CurrentSettings.PositionLocationY);
+            }
+        }
+        private void CmbCams_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            SelectedCameraID = CmbCams.SelectedIndex;
+        }
+
+        private void BtnSaveParameters_Click(object sender, EventArgs e)
+        {
+            ApplyNewParameters();
+            MessageBox.Show("Выбранные параметры успешно применены!", "FaceTrack", MessageBoxButtons.OK, MessageBoxIcon.Information);
+
+        }
     }
 }

+ 23 - 0
T FaceRecognizer/LocalSettings.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace T_FaceRecognizer
+{
+    /// <summary>
+    /// настройки приложения
+    /// </summary>
+    [Serializable]
+    public class LocalSettings
+    {
+        public int SelectedCameraID { get; set; } = -1;
+        public int PositionLocationX { get; set; } = -1;
+        public int PositionLocationY { get; set; } = -1;
+        public int FormWidth { get; set; } = -1;
+        public int FormHeight { get; set; } = -1;
+    }
+}

+ 10 - 0
T FaceRecognizer/Properties/Resources.Designer.cs

@@ -134,6 +134,16 @@ namespace T_FaceRecognizer.Properties {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap istockphoto_1450108032_1024x1024_1682962615096 {
+            get {
+                object obj = ResourceManager.GetObject("istockphoto-1450108032-1024x1024_1682962615096", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>

+ 9 - 6
T FaceRecognizer/Properties/Resources.resx

@@ -118,14 +118,17 @@
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="3643769-building-home-house-main-menu-start_113416" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\3643769-building-home-house-main-menu-start_113416.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="explorationoffacerecognition_facescanning_exploraciondereconocimientoderostro_4589" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\explorationoffacerecognition_facescanning_exploraciondereconocimientoderostro_4589.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="add_circle_create_expand_new_plus_icon_123218" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\add_circle_create_expand_new_plus_icon_123218.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="journal_text_icon_160013" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\journal_text_icon_160013.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="settingscog_87317" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\settingscog_87317.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="face_recognition_icon_250060" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\face_recognition_icon_250060.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -136,13 +139,13 @@
   <data name="haarcascade_frontalface_default" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\haarcascade_frontalface_default.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;windows-1251</value>
   </data>
-  <data name="3643769-building-home-house-main-menu-start_113416" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\3643769-building-home-house-main-menu-start_113416.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="journal_text_icon_160013" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\journal_text_icon_160013.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="FaceIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\FaceIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="settingscog_87317" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\settingscog_87317.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="istockphoto-1450108032-1024x1024_1682962615096" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\istockphoto-1450108032-1024x1024_1682962615096.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
 </root>

BIN
T FaceRecognizer/Resources/istockphoto-1450108032-1024x1024_1682962615096.jpg


+ 5 - 0
T FaceRecognizer/T FaceRecognizer.csproj

@@ -38,6 +38,9 @@
     <ApplicationIcon>FaceIcon.ico</ApplicationIcon>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="DirectShowLib, Version=2.1.0.1599, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\DirectShowLib.1.0.0\lib\DirectShowLib.dll</HintPath>
+    </Reference>
     <Reference Include="Emgu.CV.Bitmap, Version=4.4.0.4099, Culture=neutral, PublicKeyToken=7281126722ab4438, processorArchitecture=MSIL">
       <HintPath>..\packages\Emgu.CV.Bitmap.4.4.0.4099\lib\netstandard2.0\Emgu.CV.Bitmap.dll</HintPath>
     </Reference>
@@ -108,6 +111,7 @@
     <Compile Include="FormVisiting.Designer.cs">
       <DependentUpon>FormVisiting.cs</DependentUpon>
     </Compile>
+    <Compile Include="LocalSettings.cs" />
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <EmbeddedResource Include="FormMain.resx">
@@ -147,6 +151,7 @@
   </ItemGroup>
   <ItemGroup>
     <Content Include="FaceIcon.ico" />
+    <None Include="Resources\istockphoto-1450108032-1024x1024_1682962615096.jpg" />
     <None Include="Resources\settingscog_87317.png" />
     <None Include="Resources\journal_text_icon_160013.png" />
     <None Include="Resources\explorationoffacerecognition_facescanning_exploraciondereconocimientoderostro_4589.png" />

BIN
T FaceRecognizer/bin/Debug/DirectShowLib.dll


BIN
T FaceRecognizer/bin/Debug/T FaceRecognizer.exe


BIN
T FaceRecognizer/bin/Debug/localSettings.lsg


+ 5 - 0
T FaceRecognizer/bin/Debug/localSettings.txt

@@ -0,0 +1,5 @@
+0
+-1
+-1
+-1
+-1

+ 1 - 0
T FaceRecognizer/packages.config

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
+  <package id="DirectShowLib" version="1.0.0" targetFramework="net48" />
   <package id="Emgu.CV" version="4.4.0.4099" targetFramework="net48" />
   <package id="Emgu.CV.Bitmap" version="4.4.0.4099" targetFramework="net48" />
   <package id="Emgu.CV.runtime.windows" version="4.4.0.4099" targetFramework="net48" />