修改结果框
This commit is contained in:
parent
b4c7a6c6cb
commit
71997776cf
@ -17,8 +17,8 @@ Global
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{0DE28139-2917-4B58-8240-4B4E11114730}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0DE28139-2917-4B58-8240-4B4E11114730}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0DE28139-2917-4B58-8240-4B4E11114730}.Debug|X64.ActiveCfg = Debug|Any CPU
|
||||
{0DE28139-2917-4B58-8240-4B4E11114730}.Debug|X64.Build.0 = Debug|Any CPU
|
||||
{0DE28139-2917-4B58-8240-4B4E11114730}.Debug|X64.ActiveCfg = Debug|X64
|
||||
{0DE28139-2917-4B58-8240-4B4E11114730}.Debug|X64.Build.0 = Debug|X64
|
||||
{0DE28139-2917-4B58-8240-4B4E11114730}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0DE28139-2917-4B58-8240-4B4E11114730}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0DE28139-2917-4B58-8240-4B4E11114730}.Release|X64.ActiveCfg = Release|X64
|
||||
|
@ -72,7 +72,7 @@ namespace HisenceYoloDetection
|
||||
/// <param name="path2">要对比的图像</param>
|
||||
/// <param name="IfWhiteWord"> 白板黑字为true </param>
|
||||
/// <param name="saveDir">存储路径</param>
|
||||
public static bool CheckDiffSci(string path1, Mat MatDet, 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)
|
||||
{
|
||||
// 读取和处理第一张图片。。
|
||||
Mat img1 = Cv2.ImRead(path1, ImreadModes.Color);
|
||||
@ -101,6 +101,7 @@ namespace HisenceYoloDetection
|
||||
|
||||
// 读取和处理第二张图片
|
||||
Mat img2 = MatDet.Clone();
|
||||
ResultMat= MatDet.Clone();
|
||||
if (img2.Empty())
|
||||
{
|
||||
// Console.WriteLine($"Error loading image {path2}");
|
||||
@ -243,12 +244,14 @@ namespace HisenceYoloDetection
|
||||
else
|
||||
{
|
||||
Rect boundingRect = Cv2.BoundingRect(contour);
|
||||
Cv2.Resize(img2, img2, new Size(550, 270));
|
||||
Cv2.Rectangle(img2, boundingRect, Scalar.Red, thickness: 2);
|
||||
isMatch = false;
|
||||
string savePath2 = Path.Combine("D:\\Hisence\\Test\\2\\ng", Path.GetFileNameWithoutExtension(path1) + filename + "_Rect.png");
|
||||
// 保存结果
|
||||
//string savePath = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path2) + "_diff.png");
|
||||
Cv2.ImWrite(savePath2, img2);
|
||||
ResultMat = img2.Clone();
|
||||
string savePath = Path.Combine("D:\\Hisence\\Test\\2\\ng", Path.GetFileNameWithoutExtension(path1) + filename + "_diff.png");
|
||||
// 保存结果
|
||||
//string savePath = Path.Combine(saveDir, Path.GetFileNameWithoutExtension(path2) + "_diff.png");
|
||||
|
48
HisenceYoloDetection/MainForm.Designer.cs
generated
48
HisenceYoloDetection/MainForm.Designer.cs
generated
@ -150,6 +150,8 @@
|
||||
StartDecBtn = new Button();
|
||||
CloseDecBtn = new Button();
|
||||
groupBox6 = new GroupBox();
|
||||
textBox2 = new TextBox();
|
||||
label37 = new Label();
|
||||
textBox3 = new TextBox();
|
||||
label25 = new Label();
|
||||
label24 = new Label();
|
||||
@ -192,8 +194,6 @@
|
||||
timer6 = new System.Windows.Forms.Timer(components);
|
||||
richTextBox1 = new RichTextBox();
|
||||
backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
|
||||
label37 = new Label();
|
||||
textBox2 = new TextBox();
|
||||
tabPage2.SuspendLayout();
|
||||
panel1.SuspendLayout();
|
||||
groupBox5.SuspendLayout();
|
||||
@ -1556,6 +1556,26 @@
|
||||
groupBox6.TabStop = false;
|
||||
groupBox6.Text = "基础信息";
|
||||
//
|
||||
// textBox2
|
||||
//
|
||||
textBox2.Location = new Point(128, 146);
|
||||
textBox2.Margin = new Padding(4, 2, 4, 2);
|
||||
textBox2.Name = "textBox2";
|
||||
textBox2.ReadOnly = true;
|
||||
textBox2.Size = new Size(115, 31);
|
||||
textBox2.TabIndex = 23;
|
||||
//
|
||||
// label37
|
||||
//
|
||||
label37.AutoSize = true;
|
||||
label37.Location = new Point(7, 146);
|
||||
label37.Margin = new Padding(4, 0, 4, 0);
|
||||
label37.Name = "label37";
|
||||
label37.Size = new Size(96, 25);
|
||||
label37.TabIndex = 22;
|
||||
label37.Text = "旋钮颜色";
|
||||
label37.Click += label37_Click;
|
||||
//
|
||||
// textBox3
|
||||
//
|
||||
textBox3.Location = new Point(128, 95);
|
||||
@ -1607,10 +1627,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;
|
||||
@ -1930,26 +1950,6 @@
|
||||
richTextBox1.TabIndex = 1;
|
||||
richTextBox1.Text = "";
|
||||
//
|
||||
// label37
|
||||
//
|
||||
label37.AutoSize = true;
|
||||
label37.Location = new Point(7, 146);
|
||||
label37.Margin = new Padding(4, 0, 4, 0);
|
||||
label37.Name = "label37";
|
||||
label37.Size = new Size(96, 25);
|
||||
label37.TabIndex = 22;
|
||||
label37.Text = "旋钮颜色";
|
||||
label37.Click += label37_Click;
|
||||
//
|
||||
// textBox2
|
||||
//
|
||||
textBox2.Location = new Point(128, 146);
|
||||
textBox2.Margin = new Padding(4, 2, 4, 2);
|
||||
textBox2.Name = "textBox2";
|
||||
textBox2.ReadOnly = true;
|
||||
textBox2.Size = new Size(115, 31);
|
||||
textBox2.TabIndex = 23;
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(12F, 25F);
|
||||
|
@ -453,13 +453,14 @@ namespace HisenceYoloDetection
|
||||
/// <param name="e"></param>
|
||||
private void MainForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
string path22 = "D:\\Hisence\\test2\\222.jpg";
|
||||
Mat pathmat2 = Cv2.ImRead(path22);
|
||||
string path222 = "D:\\Hisence\\test2\\111.jpg";
|
||||
Rect rect1 = new Rect(0, 0, 0, 0);
|
||||
//string path22 = "D:\\Hisence\\test2\\222.jpg";
|
||||
//Mat pathmat2 = Cv2.ImRead(path22);
|
||||
//Mat pathmat2result = Cv2.ImRead(path22);
|
||||
//string path222 = "D:\\Hisence\\test2\\111.jpg";
|
||||
//Rect rect1 = new Rect(0, 0, 0, 0);
|
||||
|
||||
|
||||
CheckDiffSciHelper.CheckDiffSci(path222, pathmat2, rect1, rect1, true, "D://Hisence//test2");
|
||||
//CheckDiffSciHelper.CheckDiffSci(path222, pathmat2,ref pathmat2result, rect1, rect1, true, "D://Hisence//test2");
|
||||
|
||||
|
||||
Stopwatch sw = new Stopwatch();
|
||||
@ -1643,9 +1644,14 @@ namespace HisenceYoloDetection
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
bool MatchStr=false;
|
||||
if (xKNow != null)
|
||||
{
|
||||
string IOcrBAr = xKNow.OcrBar;
|
||||
//xKNow = GetModeFromBar(IOcrBAr);//从数据库中查询到这个条码的四轴的值
|
||||
//这里改成和海信的对接需求
|
||||
@ -1743,7 +1749,7 @@ namespace HisenceYoloDetection
|
||||
string detstr = string.Join(",", RealCFLabels); //输出为abc-def-ghi 如果不加-,也可以省
|
||||
//排序比对块
|
||||
|
||||
bool MatchStr = listLabels.SequenceEqual(RealCFLabels);
|
||||
MatchStr = listLabels.SequenceEqual(RealCFLabels);
|
||||
if (MatchStr == false)
|
||||
|
||||
{
|
||||
@ -1779,13 +1785,15 @@ namespace HisenceYoloDetection
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MatchStr = true;
|
||||
}
|
||||
///执行比对 小图
|
||||
//bool MatchStr = ManagerModelHelper.IsMatchSQLText(ref mCut, ref xK_HisenceSQLWord, ref xK_MatchDet);
|
||||
|
||||
|
||||
// int sqlblocksum=
|
||||
|
||||
|
||||
melsecPLCTCPDriver.WriteInt("550", 0);//方行
|
||||
if (MatchStr)
|
||||
{
|
||||
@ -2596,7 +2604,8 @@ namespace HisenceYoloDetection
|
||||
|
||||
|
||||
|
||||
|
||||
//if (xkWord.OneblockText.)
|
||||
//{ }
|
||||
InsertXKHisenceWordData(xkWord);//往关键字表中插入一条数据
|
||||
|
||||
string OcrTextone = strMatListOne.Join("##");
|
||||
@ -2604,6 +2613,10 @@ namespace HisenceYoloDetection
|
||||
|
||||
|
||||
string detstr = "";
|
||||
if (keyValueResult.Count<=1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (int v = 0; v < keyValueResult.Count; v++)
|
||||
{
|
||||
@ -3422,16 +3435,17 @@ namespace HisenceYoloDetection
|
||||
textBox2.Text = color;
|
||||
|
||||
}));
|
||||
juanjiMatch = CheckDiffSciHelper.CheckDiffSci(PathSql, CutBlockMat, rectsql, rectDet, iswhite, "D://Hisence//Test");
|
||||
Mat matresult = CutBlockMat.Clone();
|
||||
juanjiMatch = CheckDiffSciHelper.CheckDiffSci(PathSql, CutBlockMat,ref matresult, rectsql, rectDet, iswhite, "D://Hisence//Test");
|
||||
// juanjiMatch = true;
|
||||
|
||||
if (!OneIF1 || !juanjiMatch)
|
||||
{
|
||||
OneIF = false;
|
||||
DisplayResult(mLcut);
|
||||
//DisplayResult(mLcut);
|
||||
//显示错误的板
|
||||
// mLcut.ResultMap;
|
||||
Defet_OnDetectionDone(mLcut.ResultMap.ToMat(), 2);
|
||||
Defet_OnDetectionDone(matresult, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -104,83 +104,7 @@ namespace HisenceYoloDetection
|
||||
return cslist;
|
||||
|
||||
}
|
||||
public static bool IsMatchSQLText(ref Mat detMat, ref XK_HisenceWord XKSQL, ref XK_HisenceWord XKDet)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
string TwoRectstr = XKSQL.TwoRect;
|
||||
string oneBlockWordSql = XKSQL.OneblockMainWord;
|
||||
string twoBlockWordSql = XKSQL.TwoblockMainWord;
|
||||
string threeBlockWordSql = XKSQL.ThreeblockMainWord;
|
||||
string fourBlockWordSql = XKSQL.FourblockMainWord;
|
||||
string fiveBlockWordSql = XKSQL.FiveblockMainWord;
|
||||
string sixBlockWordSql = XKSQL.SixblockMainWord;
|
||||
string sevenBlockWordSql = XKSQL.SevenblockMainWord;
|
||||
string eightBlockWordSql = XKSQL.EightblockMainWord;
|
||||
|
||||
string oneBlockWordDet = XKDet.OneblockMainWord;
|
||||
string twoBlockWordDet = XKDet.TwoblockMainWord;
|
||||
string threeBlockWordDet = XKDet.ThreeblockMainWord;
|
||||
string fourBlockWordDet = XKDet.FourblockMainWord;
|
||||
string fiveBlockWordDet = XKDet.FiveblockMainWord;
|
||||
string sixBlockWordDet = XKDet.SixblockMainWord;
|
||||
string sevenBlockWordDet = XKDet.SevenblockMainWord;
|
||||
string eightBlockWordDet = XKDet.EightblockMainWord;
|
||||
|
||||
|
||||
|
||||
bool OneIF = isMatchStr(oneBlockWordSql, oneBlockWordDet);
|
||||
bool TwoIF = isMatchStr(twoBlockWordSql, twoBlockWordDet);
|
||||
bool ThreeIF = isMatchStr(threeBlockWordSql, threeBlockWordDet);
|
||||
bool FourIF = isMatchStr(fourBlockWordSql, fourBlockWordDet);
|
||||
bool FiveIF = isMatchStr(fiveBlockWordSql, fiveBlockWordDet);
|
||||
bool SixIF = isMatchStr(sixBlockWordSql, sixBlockWordDet);
|
||||
bool SenvenIF = isMatchStr(sevenBlockWordSql, sevenBlockWordDet);
|
||||
bool EightIF = isMatchStr(eightBlockWordSql, eightBlockWordDet);
|
||||
//第二快 卷积匹配
|
||||
string PathSql = XKSQL.TwoblockPath;
|
||||
//
|
||||
|
||||
Rect rectsql = CheckDiffSciHelper.strChangeRect(TwoRectstr);
|
||||
Rect rectDet = CheckDiffSciHelper.strChangeRect(XKDet.TwoRect);
|
||||
bool twoif2 = CheckDiffSciHelper.CheckDiffSci(PathSql, detMat, rectsql, rectDet, (bool)XKSQL.TwoIFWhile, "D://Test");
|
||||
DateTime dt = DateTime.Now;
|
||||
using (StreamWriter sw = new StreamWriter("D://Hisence//logsMatch.log", true))
|
||||
{
|
||||
string filename = dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Millisecond.ToString();
|
||||
sw.WriteLine(filename + "\n");
|
||||
sw.WriteLine(oneBlockWordSql + " " + oneBlockWordDet + "\n");
|
||||
sw.WriteLine(twoBlockWordSql + " " + twoBlockWordDet + "\n");
|
||||
sw.WriteLine(threeBlockWordSql + " " + threeBlockWordDet + "\n");
|
||||
sw.WriteLine(fourBlockWordSql + " " + fourBlockWordDet + "\n");
|
||||
sw.WriteLine(fiveBlockWordSql + " " + fiveBlockWordDet + "\n");
|
||||
sw.WriteLine(sixBlockWordSql + " " + sixBlockWordDet + "\n");
|
||||
sw.WriteLine(sevenBlockWordSql + " " + sevenBlockWordDet + "\n");
|
||||
sw.WriteLine(eightBlockWordSql + " " + eightBlockWordDet + "\n");
|
||||
sw.WriteLine(" 卷积匹配 " + twoif2 + "\n");
|
||||
sw.Flush();
|
||||
}
|
||||
//第三块区域一直都是false
|
||||
if (OneIF && TwoIF && ThreeIF && FourIF && FiveIF && SixIF && SenvenIF && EightIF && twoif2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
public static bool StrMatch(string SqlText,string DetText)
|
||||
{
|
||||
// 计算Levenshtein距离
|
||||
|
Loading…
Reference in New Issue
Block a user