Bootstrap

SDK开发思路C#

一、迈德威视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.开启码流

;