大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能

1.打开VS, 这里安装的是VS2019, 新建winform窗体.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第1张图片

2.打开水星驱动安装目录下的例程作为参考.

水星驱动安装包可以在大恒图像官网下载最新版本, 安装目录不要有中文路径, 安装之前把杀毒软件以及防火墙关闭,否则安装可能出问题. 我的水星驱动默认安装在c盘,以下是默认安装路径下例程的位置示意图 :

电脑是64位的, 选择x64文件夹下的src , 选择一个.sln文件打开,我的VS是2019的, 打开2015这个文件为例.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第2张图片

建议: 

避免有时候可能误操作修改了例程代码, 可以把例程复制一份到自己的文件夹.

如果不小心修改了安装目录下的例程代码, 没有备份,可以使用卸载水星驱动, 再重新安装水星驱动的方法. 当然, 在卸载完水星驱动的时候, 也要删除一下安装目录下的文件夹Daheng Imaging ,避免某些文件残留, 以下是默认安装路径的文件夹位置 :

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第3张图片

我们先做一个相机基础采集图像的功能, 参考GxSingleCam. 界面如下:

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第4张图片

这里安装的水星驱动版本是2206.9232, 不同水星驱动版本安装目录下的例程可能不一样, 尽可能使用最新版本.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第5张图片

3.在自己工程的窗体上创建4个button按钮和一个picturebox.

此步骤可以自己创建, 也可以直接从例程选中相应控件复制粘贴过来. 这样一来控件名称会和例程的保持一致, 自己创建需要注意一下控件名称问题.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第6张图片

4.窗体加载事件中初始化接口库, 添加库的引用.

双击例程窗体顶部空白处进入窗体加载事件, 可以把初始化接口库的代码复制到自己的工程文件下. _updateUI(); 可以先不用.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第7张图片

报错提示上下文中不存在m_objIGXFactory, 在例程里面找到m_objIGXFactory选中,转到定义, 把例程里面的定义粘贴过来.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第8张图片

 粘贴后报错未能找到类型或命名空间名”IGXFactory”. 我们需要引用库进来.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第9张图片

找到例程文件夹下的.dll库, 这里是.NET4.0框架的. 把文件夹下的库拷贝到自己工程文件夹里面.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第10张图片

然后把此库添加引用, 找到自己文件夹下拷贝过来的库添加进来.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第11张图片

 库引用进来后, 添加命名空间, 调试改为x64. 报错消失.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第12张图片

5.打开设备按钮功能实现.

双击例程的打开设备按钮, 进入代码, 复制到自己工程里面.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第13张图片

 复制进来报错比较多,提示没有定义的报错的话, 解决方式如之前, 在例程里面找到对应的没有定义的项目, 转到定义, 把定义都复制粘贴过来. 某些暂时不需要的项目可以删除或者注释, 比如 __InitUI(),__UpdateUI(),有些必要的不能删除.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第14张图片

 定义完之后发现还有两个报错,我们需要把GxBitmap.cs添加进来.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第15张图片

 找到例程里面此文件夹下的类文件, GxBitmap.cs, Win32Bitmap.cs拷贝到自己工程文件夹下.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第16张图片

 在项目上右键添加-现有项, 把刚才的文件拷贝进来.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第17张图片

再添加命名空间

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第18张图片

 6.开始采集按钮功能实现

双击例程开始采集按钮, 复制代码过来.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第19张图片

 报错提示不存在__CaptureCallbackPro. 在例程里面找到名称,转到定义, 把定义回调的代码复制过来.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第20张图片

 报错未能找到GxSingleCam. 这里替换为自己的窗体名字,我的是MainForm.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第21张图片

 报错ImageShowAndSave未定义,方法如上, 例程里面找到名称转到定义, 粘贴代码过来.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第22张图片

 这里暂时不做存图功能, 可以把相应代码直接删除或者注释.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第23张图片

 7.停止采集按钮功能实现

双击例程停止采集按钮, 复制代码

这步应该不会报错, 前面该定义的都定义过了.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第24张图片

 8.关闭设备按钮功能实现

例程双击关闭设备按钮, 复制代码过来.

这步m_bIsOpen未定义, 参考前面方法定义一下就好了.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第25张图片

 9.测试运行

连接大恒相机, 首先确认相机在水星驱动上可以正常采集图像.

再运行程序, 先点击打开设备, 稍等一会点击开始采集, 正常的话, 显示图像.

例程里面的4个按钮是有状态判断的.然后设置控件使能. 参考_updateUI()方法操作实现此功能.这样可以避免比如还没有点击打开设备, 就点击开始采集的情况.

实际应用中, 打开设备和开始采集两个按钮的功能也可以写在一起, 停止采集和关闭设备按钮的功能可以写在一起.

大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能_第26张图片

你可能感兴趣的:(c#,开发语言)