ReelCheckParam.cs
3.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OnlineStore.DeviceLibrary
{
public class ReelCheckParam
{
public static ReelCheckParam getParam(int deviceID, string cameraName, string rangeL, string rangeU, string rect1, string rect2)
{
ReelCheckParam param = new ReelCheckParam();
param.cameraName = cameraName;
param.deviceId = deviceID;
//短皮带线三 默认参数
param.dpRangeL = new List<double> { 70, 10, 10 };
param.dpRangeU = new List<double> { 95, 255, 255 };
param.rect1 = new List<int> { 1161, 1079, 432, 395 };
param.rect2 = new List<int> { 1693, 1078, 302, 233 };
if (deviceID.Equals(332))
{
//短皮带线2默认参数
param.dpRangeL = new List<double> { 57, 15, 0 };
param.dpRangeU = new List<double> { 93, 255, 255 };
param.rect1 = new List<int> { 1120, 737, 296, 282 };
param.rect2 = new List<int> { 1405, 611, 236, 202 };
}
List<double> dpRangeL = param.toDoubleArray(rangeL);
List<double> dpRangeU = param.toDoubleArray(rangeU);
List<int> rect1List = param.toIntArray(rect1);
List<int> rect2List = param.toIntArray(rect2);
if (dpRangeL.Count >= 3)
{
param.dpRangeL = new List<double> { dpRangeL[0], dpRangeL[1], dpRangeL[2] };
}
if (dpRangeU.Count >= 3)
{
param.dpRangeU = new List<double> { dpRangeU[0], dpRangeU[1], dpRangeU[2] };
}
if (rect1List.Count >= 4)
{
param.rect1 = new List<int > { rect1List[0], rect1List[1], rect1List[2], rect1List[3] };
}
if (rect2List.Count >= 4)
{
param.rect2 = new List<int> { rect2List[0], rect2List[1], rect2List[2], rect2List[3] };
}
LogUtil.info($"ReelCheckParam 皮带线ID {deviceID},{cameraName}" +
$",dpRangeL: {String.Join(",",param.dpRangeL.ToArray())}" +
$", dpRangeU: {String.Join(",", param.dpRangeU.ToArray())}" +
$", rect1: {String.Join(",", param.rect1.ToArray())}" +
$", rect2 {String.Join(",", param.rect2.ToArray())}");
return param;
}
public List<double> toDoubleArray(String str)
{
List<double> result = new List<double>();
try
{
string[] array = str.Split(';');
if (array.Length > 0)
{
foreach (string a in array)
{
double v = Convert.ToDouble(a);
result.Add(v);
}
}
}
catch (Exception ex)
{
}
return result;
}
public List<int> toIntArray(String str)
{
List<int> result = new List<int>();
try
{
string[] array = str.Split(';');
if (array.Length > 0)
{
foreach (string a in array)
{
int v = Convert.ToInt32(a);
result.Add(v);
}
}
}
catch (Exception ex)
{
}
return result;
}
public string cameraName;
public int deviceId;
// 提取下限
public List<double> dpRangeL;
//提取上限[H S V]
public List<double> dpRangeU;
//范围1
public List<int> rect1;
//范围2
public List<int> rect2;
}
}