【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)函数中添加代码
完整代码如下 :
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>();//枚举同一网段下的相机 无ALLIGXFactory.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#版】相机初始化,采集第一张图像