【02】大恒相机SDK C#开发 —— 初始化相机,采集第一帧图像

文章目录

  • 1 创建C#项目
  • 2 添加相机库文件
  • 3 添加代码
  • 4 视频教程

1 创建C#项目

创建C#控制台应用 或 C#窗体应用 都可以


2 添加相机库文件

项目"引用"-->右键"添加引用"-->在弹出的页面中点击浏览-->在相机安装目录...\GalaxySDK\APIDll\Win64\.NET4.0下找到相机库文件 GxIAPINET.dll-->添加-->确定

我的安装目录D:\SoftWare\GalaxySDK\APIDll\Win64\.NET4.0

程序中引用相机的库文件

3 添加代码

在 static void Main(string[] args)函数中添加代码

完整代码如下 :

c 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using GxIAPINET;

namespace DaHC_
{
    internal class Program
    {
        static void Main(string[] args)
        {
 //首先,找到相机

            //第一步,对相机资源进行初始化
            IGXFactory.GetInstance().Init();

            //第二部,枚举相机

            //先定义一个设备列表,用来存放枚举到的设备
            List<IGXDeviceInfo> iGXDeviceInfos = new List<IGXDeviceInfo>();

            //枚举同一网段下的相机 无ALL
            IGXFactory.GetInstance().UpdateDeviceList(1000,iGXDeviceInfos);
            //枚举同一网络下所有相机 有ALL
            //IGXFactory.GetInstance().UpdateAllDeviceList(1000, iGXDeviceInfos);

            //第三步,获取相机信息,如IP、ID、SN等
            //枚举到相机后,就可以获取到相机的一些设备信息
            string IP = iGXDeviceInfos[0].GetIP();
            string ID = iGXDeviceInfos[0].GetSN();
            string SN = iGXDeviceInfos[0].GetSN(); 

            Console.WriteLine("第一个设备的IP:"+ IP);
            Console.WriteLine("第一个设备的ID:"+ ID);
            Console.WriteLine("第一个设备的SN:"+ SN);

            //第四步,打开相机,可以通过IP、SN、MAC、ID等唯一标识符打开相机
            //这里通过SN打开相机,打开相机的方式有三种: 只读、控制、独占
            IGXDevice cam = IGXFactory.GetInstance().OpenDeviceBySN(SN, GX_ACCESS_MODE.GX_ACCESS_CONTROL);//控制方式打开


            //第五步,打开相机后,准备开始采集图像
            //首先打开流通道
            //uint cam_num = cam.GetStreamCount();
            IGXStream cam_stream = cam.OpenStream(0);//默认打开第一个流通道   

            //流通道开始采集
            cam_stream.StartGrab();
            //获取远端属性控制器
            IGXFeatureControl cam_remote_control = cam.GetRemoteFeatureControl();
            //发送开采命令,设备参数字符串可以去文档里查看
            cam_remote_control.GetCommandFeature("AcquisitionStart").Execute();
            //采集一帧图像
           
            IImageData img = cam_stream.GetImage(1000);//采集超时时间ms

            //获取并打印图像宽高
            ulong height = img.GetHeight();
            ulong width = img.GetWidth();
            Console.WriteLine("图像高:" + height.ToString() + "宽 :" + width.ToString()); 
            
        }
    }
}

运行报错

将AnyCPU 改为x64

注意:检查 项目属性-->生成-->首选32位平台,不要勾选

运行一闪而过,还没看清就结束了;

在最后一行打个断点,看看输出结果;

这里用的是USB相机,所以没有IP;

4 视频教程

【大恒工业相机SDK开发C#版】相机初始化,采集第一张图像

相关推荐
FL16238631299 小时前
[C#][winform]segment-anything分割万物部署onnx模型一键抠图演示
开发语言·c#
love530love11 小时前
OpenClaw 手机直连配置全流程
人工智能·windows·python·智能手机·c#·agent·openclaw
bcbobo21cn12 小时前
C# byte类型和byte数组的使用
开发语言·c#·字节数组·byte类型
月巴月巴白勺合鸟月半14 小时前
一次PDF文件的处理(一)
pdf·c#
大鹏说大话15 小时前
Java 锁膨胀机制深度解析:从偏向锁到重量级锁的进化之路
开发语言·c#
武藤一雄17 小时前
WPF处理耗时操作的7种方法
microsoft·c#·.net·wpf
武藤一雄17 小时前
C#常见面试题100问 (第一弹)
windows·microsoft·面试·c#·.net·.netcore
l1t19 小时前
DeepSeek总结的用 C# 构建 DuckDB 插件说明
前端·数据库·c#·插件·duckdb
iReachers20 小时前
恒盾C#混淆加密大师 1.4.5 最新2026版本发布 (附CSDN下载地址)
c#·c#混淆·c#加密·wpf加密·winform加密
历程里程碑21 小时前
43. TCP -2实现英文查中文功能
java·linux·开发语言·c++·udp·c#·排序算法