diff --git a/AIParkingApplication/AIParkingApplication.csproj b/AIParkingApplication/AIParkingApplication.csproj
index 0fce54c..e0ffa54 100644
--- a/AIParkingApplication/AIParkingApplication.csproj
+++ b/AIParkingApplication/AIParkingApplication.csproj
@@ -73,6 +73,7 @@
+
diff --git a/AIParkingApplication/AIParkingApplicationForm.Designer.cs b/AIParkingApplication/AIParkingApplicationForm.Designer.cs
index 7344900..e1efec1 100644
--- a/AIParkingApplication/AIParkingApplicationForm.Designer.cs
+++ b/AIParkingApplication/AIParkingApplicationForm.Designer.cs
@@ -28,21 +28,35 @@
///
private void InitializeComponent()
{
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
+ // pictureBox1
+ //
+ this.pictureBox1.Location = new System.Drawing.Point(24, 12);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(459, 307);
+ this.pictureBox1.TabIndex = 0;
+ this.pictureBox1.TabStop = false;
+ //
// AIParkingApplicationForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1350, 729);
+ this.Controls.Add(this.pictureBox1);
this.MinimumSize = new System.Drawing.Size(1366, 768);
this.Name = "AIParkingApplicationForm";
this.Text = "AIParking Application";
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
}
#endregion
+
+ private System.Windows.Forms.PictureBox pictureBox1;
}
}
diff --git a/AIParkingApplication/AIParkingApplicationForm.cs b/AIParkingApplication/AIParkingApplicationForm.cs
index c4b4a8c..ac23ba8 100644
--- a/AIParkingApplication/AIParkingApplicationForm.cs
+++ b/AIParkingApplication/AIParkingApplicationForm.cs
@@ -1,27 +1,123 @@
using OpenCvSharp;
+using OpenCvSharp.Extensions;
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.Threading;
using System.Windows.Forms;
namespace AIParkingApplication
{
public partial class AIParkingApplicationForm : Form
{
+ private Camera camera;
public AIParkingApplicationForm()
{
InitializeComponent();
- Mat src = new Mat(@"C:\Users\B.I\Desktop\photo_2020-06-15_15-39-11.jpg");
- using (new Window("src image", src))
+ string url = @"rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov"; // @"C:\HS_test.mp4"; // @"rtsp://admin:admin@192.168.2.10"
+ camera = new Camera(CameraType.Plate, url);
+ camera.OnVideoFrameReceived += Camera_OnVideoFrameReceived;
+ camera.Startcapture();
+ //Thread thread1 = new Thread(ShowFrame);
+ //thread1.IsBackground = true;
+ //thread1.Start();
+ //CaptureFrame();
+ }
+
+ private void Camera_OnVideoFrameReceived(Mat videoFrame)
+ {
+ pictureBox1.Invoke(new Action(() =>
{
- Cv2.WaitKey();
- }
+ pictureBox1.Image?.Dispose();
+ pictureBox1.Width = videoFrame.Width;
+ pictureBox1.Height = videoFrame.Height;
+ pictureBox1.Image = videoFrame.ToBitmap();
+ }));
+ }
+
+ //public void ShowFrame()
+ //{
+ // while (true)
+ // {
+ // Thread.Sleep(1);
+ // if (camera.VideoFrames.Count == 0)
+ // {
+ // continue;
+ // }
+ // Mat videoFrame = camera.VideoFrames.Dequeue();
+ // pictureBox1.Invoke(new Action(() =>
+ // {
+ // pictureBox1.Image?.Dispose();
+ // pictureBox1.Width = videoFrame.Width;
+ // pictureBox1.Height = videoFrame.Height;
+ // pictureBox1.Image = videoFrame.ToBitmap();
+ // }));
+ // }
+ //}
+
+ public void CaptureFrame()
+ {
+ Thread thread = new Thread(new ThreadStart(() =>
+ {
+ Mat frame1 = new Mat();
+ Mat frame2 = new Mat();
+ Mat frame3 = new Mat();
+ Mat frame4 = new Mat();
+ VideoCapture capture1 = new VideoCapture();
+ VideoCapture capture2 = new VideoCapture();
+ VideoCapture capture3 = new VideoCapture();
+ VideoCapture capture4 = new VideoCapture();
+ capture1.Open(@"C:\HS_test.mp4");
+ capture2.Open(@"rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov");
+ capture3.Open(@"C:\HS_test.mp4");
+ capture4.Open(@"rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov");
+
+ while (true)
+ {
+ Thread.Sleep(TimeSpan.FromMilliseconds(1));
+ try
+ {
+ capture1.Read(frame1);
+ capture2.Read(frame2);
+ capture3.Read(frame3);
+ capture4.Read(frame4);
+ pictureBox1.Image?.Dispose();
+ var image1 = frame1.ToBitmap();
+ pictureBox1.Invoke(new Action(() =>
+ {
+ pictureBox1.Image = image1;
+ }));
+
+ pictureBox2.Image?.Dispose();
+ var image2 = frame2.ToBitmap();
+ pictureBox2.Invoke(new Action(() =>
+ {
+ pictureBox2.Image = image2;
+ }));
+
+
+ pictureBox3.Image?.Dispose();
+ var image3 = frame3.ToBitmap();
+ pictureBox3.Invoke(new Action(() =>
+ {
+ pictureBox3.Image = image3;
+ }));
+
+
+ pictureBox4.Image?.Dispose();
+ var image4 = frame4.ToBitmap();
+ pictureBox4.Invoke(new Action(() =>
+ {
+ pictureBox4.Image = image4;
+ }));
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("Error: " + ex.Message);
+ }
+ }
+ }));
+ thread.IsBackground = true;
+ thread.Start();
}
}
}
diff --git a/AIParkingApplication/Camera.cs b/AIParkingApplication/Camera.cs
index 3fd8e0c..f1c73e9 100644
--- a/AIParkingApplication/Camera.cs
+++ b/AIParkingApplication/Camera.cs
@@ -1,24 +1,68 @@
-using System;
+using OpenCvSharp;
using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using System.Threading;
namespace AIParkingApplication
{
+ public delegate void CameraEvent(Mat videoFrame);
public class Camera
{
- private string videoStream;
+ private string streamUrl;
private CameraType cameraType;
- public Camera(CameraType cameraType, string videoStream)
+ private bool isCapturing;
+ private object lockSyncObject;
+ public Queue VideoFrames { get; set; }
+
+ public event CameraEvent OnVideoFrameReceived;
+
+ public Camera(CameraType cameraType, string streamUrl)
{
this.cameraType = cameraType;
- this.videoStream = videoStream;
+ this.streamUrl = streamUrl;
+ this.isCapturing = true;
+ lockSyncObject = new object();
+ VideoFrames = new Queue();
}
- public void CaptureFrame()
+ public void Startcapture()
{
+ Thread readVideoStreamThread = new Thread(new ThreadStart(ReadVideoStream));
+ readVideoStreamThread.IsBackground = true;
+ readVideoStreamThread.Start();
+ }
+ public void ReadVideoStream()
+ {
+ VideoCapture videoCapture = new VideoCapture();
+ Mat videoFrame = new Mat();
+ if (!videoCapture.Open(streamUrl))
+ {
+ return;
+ }
+
+ while (true)
+ {
+ Thread.Sleep(50); //Stream Thread Sleep
+ //Thread.Sleep(40); //Video Thread Sleep
+ if (!isCapturing)
+ {
+ continue;
+ }
+
+ if (videoCapture.Read(videoFrame) && videoFrame.Width > 0 && videoFrame.Height > 0)
+ {
+ //VideoFrames.Enqueue(videoFrame);
+ OnVideoFrameReceived?.Invoke(videoFrame);
+ }
+ }
+ }
+
+ public void PauseCapture()
+ {
+ lock (lockSyncObject)
+ {
+ isCapturing = false;
+ }
}
}
diff --git a/AIParkingApplication/LaneIn.Designer.cs b/AIParkingApplication/LaneIn.Designer.cs
new file mode 100644
index 0000000..d9c596c
--- /dev/null
+++ b/AIParkingApplication/LaneIn.Designer.cs
@@ -0,0 +1,185 @@
+namespace AIParkingApplication
+{
+ partial class LaneIn
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.label1 = new System.Windows.Forms.Label();
+ this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
+ this.groupBox2 = new System.Windows.Forms.GroupBox();
+ this.pictureBox3 = new System.Windows.Forms.PictureBox();
+ this.pictureBox4 = new System.Windows.Forms.PictureBox();
+ this.groupBox3 = new System.Windows.Forms.GroupBox();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.pictureBox2 = new System.Windows.Forms.PictureBox();
+ this.groupBox2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit();
+ this.groupBox3.SuspendLayout();
+ this.groupBox1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
+ this.SuspendLayout();
+ //
+ // label1
+ //
+ this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.label1.AutoSize = true;
+ this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 26.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label1.Location = new System.Drawing.Point(178, 16);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(166, 39);
+ this.label1.TabIndex = 1;
+ this.label1.Text = "LÀN VÀO";
+ //
+ // groupBox2
+ //
+ this.groupBox2.Controls.Add(this.pictureBox3);
+ this.groupBox2.Controls.Add(this.pictureBox4);
+ this.groupBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.groupBox2.Location = new System.Drawing.Point(3, 462);
+ this.groupBox2.Name = "groupBox2";
+ this.groupBox2.Size = new System.Drawing.Size(519, 284);
+ this.groupBox2.TabIndex = 2;
+ this.groupBox2.TabStop = false;
+ this.groupBox2.Text = "CAMERA TOÀN CẢNH";
+ //
+ // pictureBox3
+ //
+ this.pictureBox3.Location = new System.Drawing.Point(263, 24);
+ this.pictureBox3.Name = "pictureBox3";
+ this.pictureBox3.Size = new System.Drawing.Size(250, 250);
+ this.pictureBox3.TabIndex = 0;
+ this.pictureBox3.TabStop = false;
+ //
+ // pictureBox4
+ //
+ this.pictureBox4.Location = new System.Drawing.Point(6, 24);
+ this.pictureBox4.Name = "pictureBox4";
+ this.pictureBox4.Size = new System.Drawing.Size(250, 250);
+ this.pictureBox4.TabIndex = 0;
+ this.pictureBox4.TabStop = false;
+ //
+ // groupBox3
+ //
+ this.groupBox3.Controls.Add(this.label3);
+ this.groupBox3.Controls.Add(this.label2);
+ this.groupBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.groupBox3.Location = new System.Drawing.Point(9, 57);
+ this.groupBox3.Name = "groupBox3";
+ this.groupBox3.Size = new System.Drawing.Size(513, 91);
+ this.groupBox3.TabIndex = 4;
+ this.groupBox3.TabStop = false;
+ this.groupBox3.Text = "THÔNG TIN THẺ";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(6, 59);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(60, 18);
+ this.label3.TabIndex = 0;
+ this.label3.Text = "Loại thẻ";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(6, 31);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(51, 18);
+ this.label2.TabIndex = 0;
+ this.label2.Text = "Số thẻ";
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.pictureBox1);
+ this.groupBox1.Controls.Add(this.pictureBox2);
+ this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.groupBox1.Location = new System.Drawing.Point(3, 154);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(519, 284);
+ this.groupBox1.TabIndex = 3;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "CAMERA BIỂN SỐ";
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Location = new System.Drawing.Point(263, 24);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(250, 250);
+ this.pictureBox1.TabIndex = 0;
+ this.pictureBox1.TabStop = false;
+ //
+ // pictureBox2
+ //
+ this.pictureBox2.Location = new System.Drawing.Point(6, 24);
+ this.pictureBox2.Name = "pictureBox2";
+ this.pictureBox2.Size = new System.Drawing.Size(250, 250);
+ this.pictureBox2.TabIndex = 0;
+ this.pictureBox2.TabStop = false;
+ //
+ // LaneIn
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.groupBox1);
+ this.Controls.Add(this.groupBox3);
+ this.Controls.Add(this.groupBox2);
+ this.Controls.Add(this.label1);
+ this.Name = "LaneIn";
+ this.Size = new System.Drawing.Size(524, 760);
+ this.groupBox2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit();
+ this.groupBox3.ResumeLayout(false);
+ this.groupBox3.PerformLayout();
+ this.groupBox1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private System.Windows.Forms.Label label1;
+ private System.ComponentModel.BackgroundWorker backgroundWorker1;
+ private System.Windows.Forms.GroupBox groupBox2;
+ private System.Windows.Forms.PictureBox pictureBox3;
+ private System.Windows.Forms.PictureBox pictureBox4;
+ private System.Windows.Forms.GroupBox groupBox3;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ private System.Windows.Forms.PictureBox pictureBox2;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label3;
+ }
+}
diff --git a/AIParkingApplication/LaneIn.cs b/AIParkingApplication/LaneIn.cs
new file mode 100644
index 0000000..4da9389
--- /dev/null
+++ b/AIParkingApplication/LaneIn.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace AIParkingApplication
+{
+ public partial class LaneIn : UserControl
+ {
+ public LaneIn()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/AIParkingApplication/LaneIn.resx b/AIParkingApplication/LaneIn.resx
new file mode 100644
index 0000000..59099f2
--- /dev/null
+++ b/AIParkingApplication/LaneIn.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/AIParkingApplication/LaneOut.Designer.cs b/AIParkingApplication/LaneOut.Designer.cs
new file mode 100644
index 0000000..0f4c255
--- /dev/null
+++ b/AIParkingApplication/LaneOut.Designer.cs
@@ -0,0 +1,241 @@
+namespace AIParkingApplication
+{
+ partial class LaneOut
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.groupBox3 = new System.Windows.Forms.GroupBox();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
+ this.groupBox2 = new System.Windows.Forms.GroupBox();
+ this.pictureBox3 = new System.Windows.Forms.PictureBox();
+ this.pictureBox4 = new System.Windows.Forms.PictureBox();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.pictureBox2 = new System.Windows.Forms.PictureBox();
+ this.label4 = new System.Windows.Forms.Label();
+ this.groupBox4 = new System.Windows.Forms.GroupBox();
+ this.backgroundWorker2 = new System.ComponentModel.BackgroundWorker();
+ this.pictureBox5 = new System.Windows.Forms.PictureBox();
+ this.pictureBox6 = new System.Windows.Forms.PictureBox();
+ this.groupBox3.SuspendLayout();
+ this.groupBox2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit();
+ this.groupBox1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
+ this.groupBox4.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).BeginInit();
+ this.SuspendLayout();
+ //
+ // groupBox3
+ //
+ this.groupBox3.Controls.Add(this.label3);
+ this.groupBox3.Controls.Add(this.label4);
+ this.groupBox3.Controls.Add(this.label2);
+ this.groupBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.groupBox3.Location = new System.Drawing.Point(20, 69);
+ this.groupBox3.Name = "groupBox3";
+ this.groupBox3.Size = new System.Drawing.Size(513, 91);
+ this.groupBox3.TabIndex = 8;
+ this.groupBox3.TabStop = false;
+ this.groupBox3.Text = "THÔNG TIN THẺ";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(6, 59);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(60, 18);
+ this.label3.TabIndex = 0;
+ this.label3.Text = "Loại thẻ";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(6, 31);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(51, 18);
+ this.label2.TabIndex = 0;
+ this.label2.Text = "Số thẻ";
+ //
+ // label1
+ //
+ this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.label1.AutoSize = true;
+ this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 26.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label1.Location = new System.Drawing.Point(327, 18);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(141, 39);
+ this.label1.TabIndex = 5;
+ this.label1.Text = "LÀN RA";
+ //
+ // groupBox2
+ //
+ this.groupBox2.Controls.Add(this.pictureBox3);
+ this.groupBox2.Controls.Add(this.pictureBox4);
+ this.groupBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.groupBox2.Location = new System.Drawing.Point(14, 474);
+ this.groupBox2.Name = "groupBox2";
+ this.groupBox2.Size = new System.Drawing.Size(519, 284);
+ this.groupBox2.TabIndex = 6;
+ this.groupBox2.TabStop = false;
+ this.groupBox2.Text = "CAMERA TOÀN CẢNH";
+ //
+ // pictureBox3
+ //
+ this.pictureBox3.Location = new System.Drawing.Point(263, 24);
+ this.pictureBox3.Name = "pictureBox3";
+ this.pictureBox3.Size = new System.Drawing.Size(250, 250);
+ this.pictureBox3.TabIndex = 0;
+ this.pictureBox3.TabStop = false;
+ //
+ // pictureBox4
+ //
+ this.pictureBox4.Location = new System.Drawing.Point(6, 24);
+ this.pictureBox4.Name = "pictureBox4";
+ this.pictureBox4.Size = new System.Drawing.Size(250, 250);
+ this.pictureBox4.TabIndex = 0;
+ this.pictureBox4.TabStop = false;
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.pictureBox1);
+ this.groupBox1.Controls.Add(this.pictureBox2);
+ this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.groupBox1.Location = new System.Drawing.Point(14, 166);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(519, 284);
+ this.groupBox1.TabIndex = 7;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "CAMERA BIỂN SỐ";
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Location = new System.Drawing.Point(263, 24);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(250, 250);
+ this.pictureBox1.TabIndex = 0;
+ this.pictureBox1.TabStop = false;
+ //
+ // pictureBox2
+ //
+ this.pictureBox2.Location = new System.Drawing.Point(6, 24);
+ this.pictureBox2.Name = "pictureBox2";
+ this.pictureBox2.Size = new System.Drawing.Size(250, 250);
+ this.pictureBox2.TabIndex = 0;
+ this.pictureBox2.TabStop = false;
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(254, 31);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(54, 18);
+ this.label4.TabIndex = 0;
+ this.label4.Text = "Số tiền";
+ //
+ // groupBox4
+ //
+ this.groupBox4.Controls.Add(this.pictureBox6);
+ this.groupBox4.Controls.Add(this.pictureBox5);
+ this.groupBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.groupBox4.Location = new System.Drawing.Point(539, 167);
+ this.groupBox4.Name = "groupBox4";
+ this.groupBox4.Size = new System.Drawing.Size(261, 591);
+ this.groupBox4.TabIndex = 9;
+ this.groupBox4.TabStop = false;
+ this.groupBox4.Text = "THAM CHIẾU BIỂN SỐ";
+ //
+ // pictureBox5
+ //
+ this.pictureBox5.Location = new System.Drawing.Point(6, 23);
+ this.pictureBox5.Name = "pictureBox5";
+ this.pictureBox5.Size = new System.Drawing.Size(250, 250);
+ this.pictureBox5.TabIndex = 0;
+ this.pictureBox5.TabStop = false;
+ //
+ // pictureBox6
+ //
+ this.pictureBox6.Location = new System.Drawing.Point(5, 331);
+ this.pictureBox6.Name = "pictureBox6";
+ this.pictureBox6.Size = new System.Drawing.Size(250, 250);
+ this.pictureBox6.TabIndex = 0;
+ this.pictureBox6.TabStop = false;
+ //
+ // LaneOut
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.groupBox4);
+ this.Controls.Add(this.groupBox3);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.groupBox2);
+ this.Controls.Add(this.groupBox1);
+ this.Name = "LaneOut";
+ this.Size = new System.Drawing.Size(806, 760);
+ this.groupBox3.ResumeLayout(false);
+ this.groupBox3.PerformLayout();
+ this.groupBox2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit();
+ this.groupBox1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
+ this.groupBox4.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.GroupBox groupBox3;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label1;
+ private System.ComponentModel.BackgroundWorker backgroundWorker1;
+ private System.Windows.Forms.GroupBox groupBox2;
+ private System.Windows.Forms.PictureBox pictureBox3;
+ private System.Windows.Forms.PictureBox pictureBox4;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ private System.Windows.Forms.PictureBox pictureBox2;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.GroupBox groupBox4;
+ private System.ComponentModel.BackgroundWorker backgroundWorker2;
+ private System.Windows.Forms.PictureBox pictureBox5;
+ private System.Windows.Forms.PictureBox pictureBox6;
+ }
+}
diff --git a/AIParkingApplication/LaneOut.cs b/AIParkingApplication/LaneOut.cs
new file mode 100644
index 0000000..7f29345
--- /dev/null
+++ b/AIParkingApplication/LaneOut.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace AIParkingApplication
+{
+ public partial class LaneOut : UserControl
+ {
+ public LaneOut()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/AIParkingApplication/LaneOut.resx b/AIParkingApplication/LaneOut.resx
new file mode 100644
index 0000000..10e3d35
--- /dev/null
+++ b/AIParkingApplication/LaneOut.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 181, 17
+
+
\ No newline at end of file
diff --git a/AIParkingApplication/Processor.cs b/AIParkingApplication/Processor.cs
new file mode 100644
index 0000000..d2bbd12
--- /dev/null
+++ b/AIParkingApplication/Processor.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AIParkingApplication
+{
+ public class Processor
+ {
+ private Camera camera;
+ public Processor()
+ {
+ camera = new Camera(CameraType.Plate, @"rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov");
+ camera.OnVideoFrameReceived += Camera_OnVideoFrameReceived;
+ }
+
+ private void Camera_OnVideoFrameReceived(OpenCvSharp.Mat videoFrame)
+ {
+
+ }
+ }
+}