一、迈德威视SDK
以迈德威视例:注意程序需要更改为x64格式
一.找 找到对应品牌的dll库
二.看 看对应的演示demo程序
三.建立
1.拷贝dll库到我们程序的exe同一目录下,若用到halocn算子,则需要将halcon中的相关dll拷贝到exe同一目录下。
2.添加引用 如果添加引用报错的话(那么应该是c++文件),所以我们在对应的demo中找到c#语言对应的.cs文件(进行拷贝,复制到我们的程序中)
3.添加命名空间 SDK,相机句柄等
4.调用
1.枚举相机设备 关键字enum
2.初始化相机 关键字init (申请内存,初始化显示模块,绑定显示的控件)
3.设置回调函数(被动形式) 若颜色采集异常,则可以增加(白平衡,饱和度)处理,调用封装好的借口,显示图像
4.回调函数定义
回调函数:应用程序将函数地址注册给操作系统,并注册事件,当事件产生的时候,操作系统进行调用,并且把数据传上来。
二、凯视佳SDK开发
将dll库拷贝到exe同一目录下
将.cs文件拷贝到exe同一目录,并且拷贝复制到我们的程序中
窗体加载事件:
1.初始化动态库
2.枚举相机设备
3.打开相机
4.设置回调函数
定义回调函数
构造方法:窗体加载打开,入栈
三、巴斯勒SDK
方式一:
1.将dll库拷贝到exe应用程序同一目录下
2.新建一个窗体,将exe应用程序,改为x64格式,并且添加引用,若添加引用报错,则证明添加的dll库(不是c#代码兼容的),这时候需要去找对应的.cs文件进行添加。
3.在官方demo中找线索
demo中分为主动抓取,被动回调俩种方式
在窗体加载事件中
1.绑定事件
2.打开相机
3.开始采集
4.开启线程,主动抓取
注意这里,线程开启,当页面关闭的时候,需要等线程运行完成,在关闭,否则会出现线程还在运行,相机被关闭,导致第二次打开相机异常。所以我们用线程.wait()方法阻塞式等待
回调方式:
回调方式,这里我们发现e.GrabResult有我们想要的数据
最后在构造方法中,增加打开窗口的功能即可
方式二:
添加dll库到exe同一目录后,添加引用
窗体加载事件
1.初始化相机
2.枚举相机设备
3.创建相机
4.打开设备
5.开启线程采集
这里也需要注意线程采集关闭的问题。同上所述
四、海康SDK
1.找到对应的dll库
2.将该dll库拷贝到exe程序同一目录下,并且添加引用,将程序更改为x64类型
3.
窗体加载事件:
1.枚举相机设备
2.创建某一个设备,获取选择的设备信息
3.打开某个设备
探测网络包大小,只对GigE类型有效,这里可要可不要
设置连续采集模式
4.开始采集
获取包的大小
主动抓取方式:
相机关闭方法:
五、大华SDK
1.找到对应的dll库
2.找到对应的demo
3.建立新工程,添加引用
1.搜索设备
2.获取搜索到的第一个设备
3.打开设备
4.注册码流回调事件
5.开启码流