Common.cs
4.0 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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
using CodeLibrary.camera;
using HalconDotNet;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace CodeLibrary
{
/// <summary>
/// 相机
/// </summary>
public class Camera
{
public static ClsCamera _cam;
private static CameraType _type;
/// <summary>
/// 相机
/// </summary>
private Camera()
{ }
/// <summary>
/// 相机类型
/// </summary>
public static CameraType Type
{
set
{
if (_cam != null)
{
return;
// _cam.CloseAll();
}
_type = value;
switch (_type)
{
case CameraType.HIK:
_cam = new HIK();
// ((HIK)_cam).Continuous_Event += Camera_Continuous_Event;
break;
//case CameraType.Basler:
// _cam = new Basler();
// ((Basler)_cam).Continuous_Event += Camera_Continuous_Event;
//break;
case CameraType.HIKIDMVS:
_cam = new HIKIDMVS();
//((HIKIDMVS)_cam).Continuous_Event += Camera_Continuous_Event;
break;
}
}
get
{
return _type;
}
}
}
/// <summary>
/// 相机类型
/// </summary>
public enum CameraType
{
/// <summary>
/// 海康
/// </summary>
HIK,
/// <summary>
/// 海IDMVS
/// </summary>
HIKIDMVS,
/// <summary>
/// Basle
/// </summary>
Basler
}
public abstract class ClsCamera
{
/// <summary>
/// 所有相机的名称
/// </summary>
protected List<string> cameraName;
protected string _errInfo;
protected bool[] _isOpen;
protected int _count;
protected string[] _name;
protected int[] _width;
protected int[] _height;
//protected byte[] _buffer;
// protected Bitmap _image;
// protected int _index;
public delegate void Continuous();
public virtual string ErrInfo => _errInfo;
public virtual bool[] IsOpen => _isOpen;
public virtual int Count => _count;
public virtual string[] Name => _name;
//public virtual int[] Width => _width;
//public virtual int[] Height => _height;
//public virtual byte[] Buffer => _buffer;
// public virtual Bitmap Image => _image;
public abstract bool Load();
public abstract bool OpenAll();
public abstract bool Open(int index);
public abstract bool Open(string name);
public abstract void CloseAll();
public abstract void Close(int index);
public abstract void Close(string name);
// public abstract bool GrabOne();
public abstract Bitmap GrabOne(int index, PixelType pt = PixelType.Default);
public abstract Bitmap GrabOne(string name, PixelType pt = PixelType.Default);
// public abstract bool GrabContinuous(int index);
// public abstract void GrabStop(int index);
public abstract Bitmap GrabOneImage(string name, PixelType pt= PixelType.Default);
public abstract HObject CaptureOnImage(string name,out List<CodeInfo> cc);
public abstract HObject CaptureOnImage(string name, out Bitmap bmp, out List<CodeInfo> codeInfos, bool nohalcon = false);
public abstract bool ProcessOnImage(string name, out object[] result, params Func<string,Bitmap, object>[] func);
//扫码相机专用
public abstract List<CodeInfo> GetImageAndIdentifyCode(out Bitmap bitmap);
}
public enum PixelType
{
MONO8,
RGB8,
Default = MONO8,
}
}