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.开启码流

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
大华相机SDK是用于在C#开发与大华相机交互的工具。您可以按照以下步骤进行开发: 1. 安装大华相机软件:在开始使用大华相机SDK之前,您需要先将大华相机软件安装到C盘。如果不安装到C盘,可能会导致依赖项缺失,无法正常运行DLL。 2. 引用大华相机SDK:在C#项目中,您需要引用大华相机SDK的DLL文件。您可以使用NuGet包管理器或手动将DLL文件添加到项目中。 3. 创建相机实例:使用大华相机SDK提供的帮助类,您可以实例化相机对象并进行连接。例如,您可以使用枚举函数获取相机列表,然后选择要连接的相机。 4. 设置回调函数:通过设置回调函数,您可以在相机捕获图像时获取图像数据。您可以将图像数据转换为VisionPro的Icogimage格式或其他您需要的格式。 5. 配置相机参数:您可以使用大华相机SDK提供的函数来配置相机的触发模式、曝光时间等参数。 6. 关闭相机:在您完成相机操作后,记得关闭相机以释放资源。 以下是一个简单的示例代码,演示了如何使用大华相机SDKC#开发: ```csharp using System; using DHCamera; class Program { static void Main(string[] args) { // 创建相机实例 Camera camera = new Camera(); // 连接相机 camera.Connect(); // 设置回调函数 camera.SetCallback(CaptureCallback); // 配置相机参数 camera.SetTriggerMode(TriggerMode.Software); camera.SetExposureTime(100); // 开始捕获图像 camera.StartCapture(); // 等待用户按下任意键停止捕获 Console.ReadKey(); // 停止捕获图像 camera.StopCapture(); // 关闭相机 camera.Disconnect(); } // 回调函数,处理捕获到的图像数据 static void CaptureCallback(IntPtr pData, int width, int height) { // 在这里处理图像数据,可以将其转换为Icogimage格式或其他格式 // ... } } ``` 请注意,以上代码仅为示例,实际开发中您可能需要根据具体需求进行适当的修改和扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值