diff --git a/HisenceYoloDetection/CheckDiffSciHelper.cs b/HisenceYoloDetection/CheckDiffSciHelper.cs
index be8911a..58d5e83 100644
--- a/HisenceYoloDetection/CheckDiffSciHelper.cs
+++ b/HisenceYoloDetection/CheckDiffSciHelper.cs
@@ -72,7 +72,7 @@ namespace HisenceYoloDetection
/// 要对比的图像
/// 白板黑字为true
/// 存储路径
- public static bool CheckDiffSci(string path1, Mat MatDet, ref Mat ResultMat,Rect sqlrect, Rect detrect, bool IfWhiteWord, string saveDir)
+ public static bool CheckDiffSci(string path1, Mat MatDet, ref Mat ResultMat,Rect sqlrect, Rect detrect, bool IfWhiteWord, string saveDir,string SN)
{
// 读取和处理第一张图片。。
Mat img1 = Cv2.ImRead(path1, ImreadModes.Color);
@@ -152,7 +152,7 @@ namespace HisenceYoloDetection
Cv2.Resize(thr1, thr1, new Size(550, 270));
Cv2.Resize(thr2, thr2, new Size(550, 270));
DateTime dt = DateTime.Now;
- string filename = dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString();
+ string filename = SN;
// string savePath4 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "_thr1.png");
// 保存结果
@@ -317,7 +317,7 @@ namespace HisenceYoloDetection
/// 要对比的图像
/// 白板黑字为true
/// 存储路径
- public static bool CheckDiffSci(string path1, Mat MatDet, Rect sqlrect, Rect detrect, bool IfWhiteWord, string saveDir)
+ public static bool CheckDiffSci(string path1, Mat MatDet, Rect sqlrect, Rect detrect, bool IfWhiteWord, string saveDir,string SN)
{
// 读取和处理第一张图片
Mat img1 = Cv2.ImRead(path1, ImreadModes.Color);
@@ -394,7 +394,7 @@ namespace HisenceYoloDetection
Cv2.Resize(thr1, thr1, new Size(845, 498));
Cv2.Resize(thr2, thr2, new Size(845, 498));
DateTime dt = DateTime.Now;
- string filename = dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString();
+ string filename = SN;
//string savePath4 = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path1) + filename + "_thr1.png");
// 保存结果
diff --git a/HisenceYoloDetection/Form2.Designer.cs b/HisenceYoloDetection/Form2.Designer.cs
new file mode 100644
index 0000000..a4ed7cb
--- /dev/null
+++ b/HisenceYoloDetection/Form2.Designer.cs
@@ -0,0 +1,83 @@
+namespace HisenceYoloDetection
+{
+ partial class Form2
+ {
+ ///
+ /// 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 Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ button1 = new Button();
+ textBox1 = new TextBox();
+ label1 = new Label();
+ SuspendLayout();
+ //
+ // button1
+ //
+ button1.Location = new Point(301, 82);
+ button1.Name = "button1";
+ button1.Size = new Size(112, 34);
+ button1.TabIndex = 0;
+ button1.Text = "验证";
+ button1.UseVisualStyleBackColor = true;
+ //
+ // textBox1
+ //
+ textBox1.Location = new Point(224, 34);
+ textBox1.Name = "textBox1";
+ textBox1.Size = new Size(269, 30);
+ textBox1.TabIndex = 1;
+ //
+ // label1
+ //
+ label1.AutoSize = true;
+ label1.Location = new Point(91, 34);
+ label1.Name = "label1";
+ label1.Size = new Size(100, 24);
+ label1.TabIndex = 2;
+ label1.Text = "退出密码:";
+ label1.Click += label1_Click;
+ //
+ // Form2
+ //
+ AutoScaleDimensions = new SizeF(11F, 24F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(674, 130);
+ Controls.Add(label1);
+ Controls.Add(textBox1);
+ Controls.Add(button1);
+ Name = "Form2";
+ Text = "退出验证";
+ Load += Form2_Load;
+ ResumeLayout(false);
+ PerformLayout();
+ }
+
+ #endregion
+
+ private Button button1;
+ private TextBox textBox1;
+ private Label label1;
+ }
+}
\ No newline at end of file
diff --git a/HisenceYoloDetection/Form2.cs b/HisenceYoloDetection/Form2.cs
new file mode 100644
index 0000000..a23c0d7
--- /dev/null
+++ b/HisenceYoloDetection/Form2.cs
@@ -0,0 +1,39 @@
+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;
+
+namespace HisenceYoloDetection
+{
+ public partial class Form2 : Form
+ {
+ public string EnteredPassword { get; private set; }
+ public Form2()
+ {
+ InitializeComponent();
+ button1.Click += button1_Click; // 订阅按钮点击事件
+ }
+
+ private void button1_Click(object sender, EventArgs e)
+ {
+ EnteredPassword = textBox1.Text;
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+
+ private void Form2_Load(object sender, EventArgs e)
+ {
+ CenterToScreen();
+ }
+
+ private void label1_Click(object sender, EventArgs e)
+ {
+
+ }
+ }
+}
diff --git a/HisenceYoloDetection/Form2.resx b/HisenceYoloDetection/Form2.resx
new file mode 100644
index 0000000..af32865
--- /dev/null
+++ b/HisenceYoloDetection/Form2.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
\ No newline at end of file
diff --git a/HisenceYoloDetection/MainForm.Designer.cs b/HisenceYoloDetection/MainForm.Designer.cs
index c6f9581..a7fc875 100644
--- a/HisenceYoloDetection/MainForm.Designer.cs
+++ b/HisenceYoloDetection/MainForm.Designer.cs
@@ -151,6 +151,9 @@
StartDecBtn = new Button();
CloseDecBtn = new Button();
groupBox6 = new GroupBox();
+ button6 = new Button();
+ button5 = new Button();
+ button4 = new Button();
textBox2 = new TextBox();
label37 = new Label();
textBox3 = new TextBox();
@@ -1387,10 +1390,10 @@
groupBox8.Controls.Add(label20);
groupBox8.Controls.Add(textBox1);
groupBox8.Controls.Add(label35);
- groupBox8.Location = new Point(11, 326);
+ groupBox8.Location = new Point(11, 368);
groupBox8.Name = "groupBox8";
groupBox8.RightToLeft = RightToLeft.No;
- groupBox8.Size = new Size(596, 462);
+ groupBox8.Size = new Size(596, 420);
groupBox8.TabIndex = 24;
groupBox8.TabStop = false;
groupBox8.Text = "生产信息";
@@ -1508,7 +1511,7 @@
label35.Name = "label35";
label35.Size = new Size(75, 25);
label35.TabIndex = 14;
- label35.Text = "误检率";
+ label35.Text = "误检数";
//
// groupBox7
//
@@ -1557,6 +1560,9 @@
//
// groupBox6
//
+ groupBox6.Controls.Add(button6);
+ groupBox6.Controls.Add(button5);
+ groupBox6.Controls.Add(button4);
groupBox6.Controls.Add(textBox2);
groupBox6.Controls.Add(label37);
groupBox6.Controls.Add(textBox3);
@@ -1565,14 +1571,47 @@
groupBox6.Controls.Add(ScannerBox);
groupBox6.Location = new Point(11, 120);
groupBox6.Name = "groupBox6";
- groupBox6.Size = new Size(582, 191);
+ groupBox6.Size = new Size(582, 231);
groupBox6.TabIndex = 22;
groupBox6.TabStop = false;
groupBox6.Text = "基础信息";
//
+ // button6
+ //
+ button6.Location = new Point(438, 172);
+ button6.Margin = new Padding(4, 2, 4, 2);
+ button6.Name = "button6";
+ button6.Size = new Size(137, 54);
+ button6.TabIndex = 25;
+ button6.Text = "第二块NG";
+ button6.UseVisualStyleBackColor = true;
+ button6.Click += button6_Click;
+ //
+ // button5
+ //
+ button5.Location = new Point(438, 95);
+ button5.Margin = new Padding(4, 2, 4, 2);
+ button5.Name = "button5";
+ button5.Size = new Size(137, 54);
+ button5.TabIndex = 24;
+ button5.Text = "第一块NG";
+ button5.UseVisualStyleBackColor = true;
+ button5.Click += button5_Click;
+ //
+ // button4
+ //
+ button4.Location = new Point(438, 22);
+ button4.Margin = new Padding(4, 2, 4, 2);
+ button4.Name = "button4";
+ button4.Size = new Size(137, 54);
+ button4.TabIndex = 21;
+ button4.Text = "相机照片";
+ button4.UseVisualStyleBackColor = true;
+ button4.Click += button4_Click_2;
+ //
// textBox2
//
- textBox2.Location = new Point(128, 146);
+ textBox2.Location = new Point(128, 169);
textBox2.Margin = new Padding(4, 2, 4, 2);
textBox2.Name = "textBox2";
textBox2.ReadOnly = true;
@@ -1582,7 +1621,7 @@
// label37
//
label37.AutoSize = true;
- label37.Location = new Point(7, 146);
+ label37.Location = new Point(7, 172);
label37.Margin = new Padding(4, 0, 4, 0);
label37.Name = "label37";
label37.Size = new Size(96, 25);
@@ -1592,17 +1631,17 @@
//
// textBox3
//
- textBox3.Location = new Point(128, 95);
+ textBox3.Location = new Point(128, 107);
textBox3.Margin = new Padding(4, 2, 4, 2);
textBox3.Name = "textBox3";
textBox3.ReadOnly = true;
- textBox3.Size = new Size(402, 31);
+ textBox3.Size = new Size(279, 31);
textBox3.TabIndex = 21;
//
// label25
//
label25.AutoSize = true;
- label25.Location = new Point(7, 95);
+ label25.Location = new Point(7, 110);
label25.Margin = new Padding(4, 0, 4, 0);
label25.Name = "label25";
label25.Size = new Size(96, 25);
@@ -1627,7 +1666,7 @@
ScannerBox.Margin = new Padding(4, 2, 4, 2);
ScannerBox.Name = "ScannerBox";
ScannerBox.ReadOnly = true;
- ScannerBox.Size = new Size(402, 31);
+ ScannerBox.Size = new Size(279, 31);
ScannerBox.TabIndex = 18;
//
// linkLabel1
@@ -1641,10 +1680,10 @@
// tabPage3
//
tabPage3.Controls.Add(panel2);
- tabPage3.Location = new Point(4, 33);
+ tabPage3.Location = new Point(4, 34);
tabPage3.Margin = new Padding(4, 2, 4, 2);
tabPage3.Name = "tabPage3";
- tabPage3.Size = new Size(1276, 816);
+ tabPage3.Size = new Size(1276, 815);
tabPage3.TabIndex = 4;
tabPage3.Text = "录入新型号";
tabPage3.UseVisualStyleBackColor = true;
@@ -2200,5 +2239,8 @@
private Label label36;
private Label label37;
private PictureBox pictureBox1;
+ private Button button4;
+ private Button button5;
+ private Button button6;
}
}
diff --git a/HisenceYoloDetection/MainForm.cs b/HisenceYoloDetection/MainForm.cs
index bc56670..4080dae 100644
--- a/HisenceYoloDetection/MainForm.cs
+++ b/HisenceYoloDetection/MainForm.cs
@@ -79,6 +79,7 @@ namespace HisenceYoloDetection
ManualResetEvent _runHandleAfter = new ManualResetEvent(false);
AutoResetEvent _runThreadFormtype = new AutoResetEvent(false);
bool PLC545 = false;
+ private const string CorrectPassword = "12345";
bool PLC548 = false;
string m_sKEYENCEBar;
@@ -1393,11 +1394,11 @@ namespace HisenceYoloDetection
// MoveToP(51043, YPos, ZPos + (int)(dismove));
//Cam1.Snapshot();
MoveToP(5815, YPos, ZPos);
- melsecPLCTCPDriver.WriteInt("550", 0);//
+ //melsecPLCTCPDriver.WriteInt("550", 0);//
- Thread.Sleep(1000);//ϴ»ܹȥ
+ //Thread.Sleep(1000);//ϴ»ܹȥ
//if (xKNow != null)
//{
@@ -1555,10 +1556,10 @@ namespace HisenceYoloDetection
}
- string pathfile = fitImageFolder + dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString() + "1.jpg";
+ string pathfile = fitImageFolder + m_sKEYENCEBar + ".jpg";
//CamShow1.ImaMAt = cameraMat;
cameraMat.ImWrite(pathfile);
- CheckDiffSciHelper1.ResizeImage(pathfile,pathfile,640,480,75);
+ CheckDiffSciHelper1.ResizeImage(pathfile, pathfile, 640, 480, 75);
}
///
@@ -1567,7 +1568,7 @@ namespace HisenceYoloDetection
///
///
///
-
+
public volatile int AllDsums = 0;
public volatile int NGDsums = 0;
public volatile int OKDsums = 0;
@@ -1626,14 +1627,14 @@ namespace HisenceYoloDetection
myLog("ģɹ", DateTime.Now);
}
-
-
+
+
}
}
- bool MatchStr=false;
+ bool MatchStr = false;
if (xKNow != null)
{
string IOcrBAr = xKNow.OcrBar;
@@ -1699,7 +1700,7 @@ namespace HisenceYoloDetection
if (mL.ResultMap != null)
{
- mL.ResultMap.Save("D://cam1//" + dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString() + "1result.jpg");
+ mL.ResultMap.Save("D://cam1//" + m_sKEYENCEBar + "result.jpg");
ResultMatShow.Image = mL.ResultMap;
}
@@ -1733,7 +1734,7 @@ namespace HisenceYoloDetection
string detstr = string.Join(",", RealCFLabels); //Ϊabc-def-ghi -,Ҳʡ
//ȶԿ
- MatchStr = listLabels.SequenceEqual(RealCFLabels);
+ MatchStr = listLabels.SequenceEqual(RealCFLabels);
if (MatchStr == false)
{
@@ -1778,9 +1779,10 @@ namespace HisenceYoloDetection
//bool MatchStr = ManagerModelHelper.IsMatchSQLText(ref mCut, ref xK_HisenceSQLWord, ref xK_MatchDet);
- melsecPLCTCPDriver.WriteInt("550", 0);//
+
if (MatchStr)
{
+
OKDsums++;
myLog("ƥɹ", DateTime.Now);
//ʾ
@@ -1789,7 +1791,7 @@ namespace HisenceYoloDetection
{
OKOrNGShow.Image = OKbitmap;
}));
-
+ melsecPLCTCPDriver.WriteInt("550", 0);//
}
else
@@ -1810,7 +1812,7 @@ namespace HisenceYoloDetection
melsecPLCTCPDriver.WriteInt(RedLightingAdress, 0);//
melsecPLCTCPDriver.WriteInt(GreenLightingAdress, 1);//̵
melsecPLCTCPDriver.WriteInt(WaringAdress, 0);//
-
+ melsecPLCTCPDriver.WriteInt("550", 0);//
OKDsums++;
WUsums++;
this.Invoke(new Action(() =>
@@ -1829,7 +1831,7 @@ namespace HisenceYoloDetection
melsecPLCTCPDriver.WriteInt(WaringAdress, 0);//
melsecPLCTCPDriver.WriteInt(RedLightingAdress, 0);//
melsecPLCTCPDriver.WriteInt(GreenLightingAdress, 1);//̵
-
+ melsecPLCTCPDriver.WriteInt("550", 0);//
this.Invoke(new Action(() =>
{
@@ -2597,7 +2599,7 @@ namespace HisenceYoloDetection
string detstr = "";
- if (keyValueResult.Count<=1)
+ if (keyValueResult.Count <= 1)
{
return;
}
@@ -3344,7 +3346,7 @@ namespace HisenceYoloDetection
string TextWoidStr = OcrFuzzyTextInsert.Join("##"); //ʵʵļ
string SQLStr = "";//־ʾݿĹؼ
bool juanjiMatch = false;
- string filenameone = dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString();
+ string filenameone = m_sKEYENCEBar;
switch (blockIndex)
{
case "1"://ȫƥ Ϣ
@@ -3401,8 +3403,8 @@ namespace HisenceYoloDetection
Rect rectsql = CheckDiffSciHelper.strChangeRect(SQlxK_HisenceWord.TwoRect);
Rect rectDet = CheckDiffSciHelper.strChangeRect(xK_HisenceWord.TwoRect);
bool iswhite = IsMostlyWhite(PathSql);//жݿģ鱳ɫ
-
- Mat SqlImg= Cv2.ImRead(PathSql);
+
+ Mat SqlImg = Cv2.ImRead(PathSql);
Mat SqlBtn = GetCroppedImage(SqlImg, rectsql);
Mat BtnImg = GetCroppedImage(CutBlockMat, rectDet);//ȡʵʱͼťͼƬ
Bitmap bitmap = MatToBitmap(BtnImg);
@@ -3416,7 +3418,7 @@ namespace HisenceYoloDetection
}));
Mat matresult = CutBlockMat.Clone();
- juanjiMatch = CheckDiffSciHelper.CheckDiffSci(PathSql, CutBlockMat,ref matresult, rectsql, rectDet, iswhite, "D://Hisence//Test");
+ juanjiMatch = CheckDiffSciHelper.CheckDiffSci(PathSql, CutBlockMat, ref matresult, rectsql, rectDet, iswhite, "D://Hisence//Test", m_sKEYENCEBar);
// juanjiMatch = true;
if (!OneIF1 || !juanjiMatch)
@@ -3448,7 +3450,7 @@ namespace HisenceYoloDetection
Rect rect = new Rect(0, 0, 0, 0);
string PathSql = SQlxK_HisenceWord.ThreeblockPath;
bool iswhite = IsMostlyWhite(PathSql);
- juanjiMatch = CheckDiffSciHelper1.CheckDiffSci(PathSql, CutBlockMat, rect, rect, iswhite, "D://Hisence//Test1");
+ juanjiMatch = CheckDiffSciHelper1.CheckDiffSci(PathSql, CutBlockMat, rect, rect, iswhite, "D://Hisence//Test1", m_sKEYENCEBar);
if (!OneIF1 || !juanjiMatch)
{
OneIF = true;//6.28
@@ -3807,6 +3809,7 @@ namespace HisenceYoloDetection
///
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
+
melsecPLCTCPDriver.WriteInt("550", 0);
melsecPLCTCPDriver.WriteInt(YellowLightingAdress, 0);
melsecPLCTCPDriver.WriteInt(GreenLightingAdress, 0);
@@ -3839,10 +3842,24 @@ namespace HisenceYoloDetection
private void CloseDecBtn_Click(object sender, EventArgs e)
{
- meachineState = MeachineState.machine_closing;
- melsecPLCTCPDriver.WriteInt("550", 0);
- melsecPLCTCPDriver.WriteInt(YellowLightingAdress, 0);
- melsecPLCTCPDriver.WriteInt(GreenLightingAdress, 0);
+ using (var passwordForm = new Form2())
+ {
+ if (passwordForm.ShowDialog() == DialogResult.OK)
+ {
+ if (passwordForm.EnteredPassword == CorrectPassword)
+ {
+ // ȷִز
+ meachineState = MeachineState.machine_closing;
+ melsecPLCTCPDriver.WriteInt("550", 0);
+ melsecPLCTCPDriver.WriteInt(YellowLightingAdress, 0);
+ melsecPLCTCPDriver.WriteInt(GreenLightingAdress, 0);
+ }
+ else
+ {
+ MessageBox.Show("", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
}
private void label24_Click(object sender, EventArgs e)
@@ -3884,5 +3901,71 @@ namespace HisenceYoloDetection
{
}
+
+ private void button6_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ string FolderPath = "D:\\Hisence\\Test\\2\\ng";
+ // ȷļ·
+ if (System.IO.Directory.Exists(FolderPath))
+ {
+ // ʹ Process ļԴָļ
+ Process.Start("explorer.exe", FolderPath);
+ }
+ else
+ {
+ MessageBox.Show("ָļв", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show($"ļ: {ex.Message}", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void button4_Click_2(object sender, EventArgs e)
+ {
+ try
+ {
+ string FolderPath = "D:\\Hisence\\cam1";
+ // ȷļ·
+ if (System.IO.Directory.Exists(FolderPath))
+ {
+ // ʹ Process ļԴָļ
+ Process.Start("explorer.exe", FolderPath);
+ }
+ else
+ {
+ MessageBox.Show("ָļв", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show($"ļ: {ex.Message}", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void button5_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ string FolderPath = "D:\\Hisence\\Test\\1\\ng";
+ // ȷļ·
+ if (System.IO.Directory.Exists(FolderPath))
+ {
+ // ʹ Process ļԴָļ
+ Process.Start("explorer.exe", FolderPath);
+ }
+ else
+ {
+ MessageBox.Show("ָļв", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show($"ļ: {ex.Message}", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
}
}