轮胎外观检测添加思谋语义分割模型检测工具
C3204
2026-04-02 3c837a3be1548e296d6ed1afb32ebe418b69db25
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
 
namespace LB_SmartVisionCameraSDK.PHM6000
{
    /// <summary>
    /// LBPointZ数据结构
    /// </summary>
    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public struct LBPointZ
    {
        /// <summary>
        /// Z坐标值
        /// </summary>
        public float z;
    }
    /// <summary>
    /// LBPointXZ数据结构
    /// </summary>
    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public struct LBPointXZ
    {
        /// <summary>
        /// X坐标值
        /// </summary>
        public float x;
        /// <summary>
        /// Z坐标值
        /// </summary>
        public float z;
    }
    /// <summary>
    /// LBPointXYZ数据结构
    /// </summary>
    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public struct LBPointXYZ
    {
        /// <summary>
        /// X坐标值
        /// </summary>
        public float x;
        /// <summary>
        /// Y坐标值
        /// </summary>
        public float y;
        /// <summary>
        /// Z坐标值
        /// </summary>
        public float z;
    }
    /// <summary>
    /// LBPointXYZBGR数据结构
    /// </summary>
    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public struct LBPointXYZBGR
    {
        /// <summary>
        /// X坐标值
        /// </summary>
        public float x;
        /// <summary>
        /// Y坐标值
        /// </summary>
        public float y;
        /// <summary>
        /// Z坐标值
        /// </summary>
        public float z;
        /// <summary>
        /// 蓝色分量
        /// </summary>
        public byte b;
        /// <summary>
        /// 绿色分量
        /// </summary>
        public byte g;
        /// <summary>
        /// 红色分量
        /// </summary>
        public byte r;
    }
    /// <summary>
    /// LBPointXYZBGRA数据结构
    /// </summary>
    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public struct LBPointXYZBGRA
    {
        /// <summary>
        /// X坐标值
        /// </summary>
        public float x;
        /// <summary>
        /// Y坐标值
        /// </summary>
        public float y;
        /// <summary>
        /// Z坐标值
        /// </summary>
        public float z;
        /// <summary>
        /// 蓝色分量
        /// </summary>
        public byte b;
        /// <summary>
        /// 绿色分量
        /// </summary>
        public byte g;
        /// <summary>
        /// 红色分量
        /// </summary>
        public byte r;
        /// <summary>
        /// 透明度
        /// </summary>
        public byte alpha;
    }
    /// <summary>
    /// LBPointBGRA数据结构
    /// </summary>
    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public struct LBPointBGRA
    {
        /// <summary>
        /// 蓝色分量
        /// </summary>
        public byte b;
        /// <summary>
        /// 绿色分量
        /// </summary>
        public byte g;
        /// <summary>
        /// 红色分量
        /// </summary>
        public byte r;
        /// <summary>
        /// 透明度
        /// </summary>
        public byte alpha;
    }
    /// <summary>
    /// LBPointZA数据结构
    /// </summary>
    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public struct LBPointZA
    {
        /// <summary>
        /// Z坐标值
        /// </summary>
        public float z;
        /// <summary>
        /// 保留1
        /// </summary>
        public byte reserve1;
        /// <summary>
        /// 保留2
        /// </summary>
        public byte reserve2;
        /// <summary>
        /// 保留3
        /// </summary>
        public byte reserve3;
        /// <summary>
        /// 透明度
        /// </summary>
        public byte alpha;
    }
    /// <summary>
    /// BITMAPINFOHEADER数据结构
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct BITMAPINFOHEADER
    {
        /// <summary>
        /// 指定结构所需的字节数。 此值不包括颜色表的大小或颜色掩码的大小(如果它们追加到结构的末尾)。
        /// </summary>
        public uint biSize;
        /// <summary>
        /// 指定位图的宽度(以像素为单位)
        /// </summary>
        public int biWidth;
        /// <summary>
        /// 指定位图的高度(以像素为单位)。
        /// </summary>
        public int biHeight;
        /// <summary>
        /// 指定目标设备的平面数。 此值必须设置为 1。
        /// </summary>
        public ushort biPlanes;
        /// <summary>
        /// 指定每像素 (bpp) 位数。 对于未压缩格式,此值是每像素的平均位数。 对于压缩格式,此值是解码图像后未压缩图像的隐含位深度。
        /// </summary>
        public ushort biBitCount;
        /// <summary>
        /// 对于压缩视频和 YUV 格式,此成员是 FOURCC 代码,以小端顺序指定为 DWORD 。
        /// </summary>
        public uint biCompression;
        /// <summary>
        /// 指定图像的大小(以字节为单位)。 对于未压缩的 RGB 位图,可以将其设置为 0。
        /// </summary>
        public uint biSizeImage;
        /// <summary>
        /// 指定位图的目标设备的水平分辨率(以像素/米为单位)。
        /// </summary>
        public int biXPelsPerMeter;
        /// <summary>
        /// 指定位图的目标设备的垂直分辨率(以每米像素为单位)。
        /// </summary>
        public int biYPelsPerMeter;
        /// <summary>
        /// 指定位图实际使用的颜色表中的颜色索引数。
        /// </summary>
        public uint biClrUsed;
        /// <summary>
        /// 指定被认为对显示位图很重要的颜色索引数。
        /// </summary>
        public uint biClrImportant;
    }
    /// <summary>
    /// RGBQUAD数据结构
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct RGBQUAD
    {
        /// <summary>
        /// 蓝色的强度。
        /// </summary>
        public byte rgbBlue;
        /// <summary>
        /// 绿色的颜色强度。
        /// </summary>
        public byte rgbGreen;
        /// <summary>
        /// 红色的强度。
        /// </summary>
        public byte rgbRed;
        /// <summary>
        /// 此成员为保留成员,必须为零。
        /// </summary>
        public byte rgbReserved;
    }
 
    // 正确实现 BITMAPINFO 结构体
    /// <summary>
    ///  BITMAPINFO数据结构体
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct BITMAPINFO
    {
        /// <summary>
        /// 一个 BITMAPINFOHEADER 结构,其中包含有关颜色格式维度的信息。
        /// </summary>
        public BITMAPINFOHEADER bmiHeader;
 
        // 使用 InlineArray 特性处理可变长度颜色表
        /// <summary>
        /// RGBQUAD 数组。 构成颜色表的数组的元素。
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
        public RGBQUAD[] bmiColors;
    }
}