VS(C#)调用海康工业相机SDK采集图像及基本功能设定

VS(C#)调用海康工业相机SDK采集图像及基本功能设定

简介
由于工作关系,本人最近使用到了海康的网口及USB3.0接口的工业相机。现将相关内容进行整理记录。
开发环境
64位VS2013 +C#
Halcon12
海康MVS3.0.0

引用海康相机动态库(MvCameraControl.Net.dll)
在VS项目文件中添加添加引用,如下图
在这里插入图片描述
引用MVS安装目录下MVS\Development\DotNet\MvCameraControl.Net.dll这个文件。
创建相机类
鼠标右键单击工程项目–添加–类,选择“类”,输入类的名称,例如Hikvision,点击右下角的“添加”。
在项目中使用海康相机时,为便于程序编写,可引入如下的命名空间:
using MvCamCtrl.NET;
创建需要用到的全局变量

public MyCamera myCamera;//相机对象
private MyCamera.MV_CC_DEVICE_INFO_LIST deviceList;//设备列表
private MyCamera.MV_CC_DEVICE_INFO deviceInfo;//设备对象
private string seriesStr;//接收相机序列号
private MyCamera.MVCC_INTVALUE stParam;//用于接收特定的参数
//为读取、保存图像创建的数组
UInt32 m_nBufSizeForDriver = 4096 * 3000;
byte[] m_pBufForDriver = new byte[4096 * 3000];
UInt32 m_nBufSizeForSaveImage = 4096 * 3000 * 3 + 3000;
byte[] m_pBufForSaveImage = new byte[4096 * 3000 * 3 + 3000];

创建相关函数
1.创建构造函数

//在构造函数中实例化设备列表对象
public Hikvision()
 {
     deviceList = new MyCamera.MV_CC_DEVICE_INFO_LIST();
 }

2.创建改变相机IP的函数

//成功返回0失败返回-1
//调用函数时可以传入需要改变的目标IP,如过没有传入则将相机IP设置为其所连接的网卡地址+1或-1
public int changeIP(string IP = "")
{
   try
   {
         //获取相机相关信息,例如相机所连接网卡的网址
          IntPtr buffer = Marshal.UnsafeAddrOfPinnedArrayElement(deviceInfo.SpecialInfo.stGigEInfo, 0);
          MyCamera.MV_GIGE_DEVICE_INFO gigeInfo = (MyCamera.MV_GIGE_DEVICE_INFO)Marshal.PtrToStructure(buffer, typeof(MyCamera.MV_GIGE_DEVICE_INFO));
          IPAddress cameraIPAddress;
          string tempStr = "";
          if (IP.Trim().Equals("") || !(IPAddress.TryParse(IP, out cameraIPAddress)))
          {
               //当前网卡的IP地址
               UInt32 nNetIp1 = (gigeInfo.nNetExport & 0xFF000000) >> 24;
               UInt32 nNetIp2 = (gigeInfo.nNetExport & 0x00FF0000) >> 16;
               UInt32 nNetIp3 = (gigeInfo.nNetExport & 0x0000FF00) >> 8;
               UInt32 nNetIp4 = (gigeInfo.nNetExport & 0x000000FF);
               //根据网卡IP设定相机IP,如果网卡ip第四位小于252,则相机ip第四位+1,否则相机IP第四位-1
              UInt32 cameraIp1 = nNetIp1;
              UInt32 cameraIp2 = nNetIp2;
              UInt32 cameraIp3 = nNetIp3;
              UInt32 cameraIp4 = nNetIp4;
              if (nNetIp4 < 252)
              {
                    cameraIp4++;
              }
              else
              {
                     cameraIp4--;
              }
              tempStr = cameraIp1 + "." + cameraIp2 + "." + cameraIp3 + "." + cameraIp4;
          }
          else
          {
        
  • 64
    点赞
  • 426
    收藏
    觉得还不错? 一键收藏
  • 42
    评论
Unity调用海康SDK是指在Unity游戏引擎中使用海康威视的软件开发工具包(SDK)进行开发和集成。海康SDK海康威视公司提供的一套软件开发工具,用于实现视频监控、视频分析等功能。 在Unity中调用海康SDK需要以下步骤: 1. 下载和安装海康SDK:从海康威视的官方网站或开发者中心下载海康SDK,安装到本地开发环境中。 2. 创建Unity项目:打开Unity游戏引擎,创建一个新的项目或打开现有的项目。 3. 导入海康SDK:将海康SDK的相关文件和资源导入到Unity项目中。可以将SDK的相关脚本、插件和资源文件拖放到Unity的资源管理器中,确保文件正确导入。 4. 编写代码:在Unity中编写代码调用海康SDK的功能。通过使用C#或Unity脚本语言,可以通过SDK提供的接口实现视频监控、视频播放、图像抓拍等功能。 5. 构建和测试:在Unity中进行完成后,可以进行项目的构建和测试。根据需要,可以构建为PC、移动设备或其他平台的应用程序,并在相应的设备上进行测试和调试。 6. 集成和发布:完成测试后,可以将Unity项目集成到目标平台中,并进行发布。根据需要,可以将项目发布为独立的应用程序、在线游戏或其他形式的应用。 总之,Unity调用海康SDK是一种在Unity游戏引擎中利用海康威视提供的SDK进行视频监控、视频播放等功能开发和集成的方式。通过上述步骤,开发人员可以在Unity项目中轻松使用海康SDK,并实现各种视频相关的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值