南京电商网站建设公司wordpress博客页面

当前位置: 首页 > news >正文

南京电商网站建设公司,wordpress博客页面,妇联 网站建设情况,怎么做网站推广平台文章目录 引言正文相关开发库的介绍编程准备配置引用头文件GalaxyIncludes.h配置lib文件 具体编程过程初始化和反初始化枚举设备开关设备 属性控制属性控制器种类 图像采集控制和图像处理采单帧回调采集 总结 引言 在做老师的横向项目时#xff0c;需要用大恒相机#xff0c… 文章目录 引言正文相关开发库的介绍编程准备配置引用头文件GalaxyIncludes.h配置lib文件 具体编程过程初始化和反初始化枚举设备开关设备 属性控制属性控制器种类 图像采集控制和图像处理采单帧回调采集 总结 引言 在做老师的横向项目时需要用大恒相机需要将他的相机控制接入写的程序中但是对于他的SDK并不了解所以就好好看了他的SDK文件并按照他的开发手册写了一个小的demo。 正文 相关开发库的介绍 在使用别人的代码过程中有很多库自己都看不懂这里做一下记录GxIAPICPPEx.dll封装过后的通用并且统一的编程接口IGXFactory初始化接口库枚举设备打开设备IGXDevice设备对象以此对象为入口进行属性控制、图像采集获取相机事件等。IGXStream流对象从IGXDevice获得专门负责图像采集相关职能。IGXFeatureControl属性控制对象分别从IGXDevice和IGXStream获得属性控制对象IImageData回调采集和采单帧的图像结构体包括采集输出结果图像buffer和图像信息等还自带图像格式转换、图像增强的功能GXBitmap负责图像的显示和存储功能具体见示例程序 编程准备 首先需要下载安装对应设备的SDK文件具体链接相关SDK软件下载这里是结合VS 2022进行打开如何配置库如何指定相关的头文件。在编程之前需要配置好指定的项目文件 配置好所需要引用的头文件Galaxyincludes.h头文件设置需要引用的库文件GxlAPICPPEx.lib库文件
配置引用头文件GalaxyIncludes.h 这里安装了SDK的话需要指定你所运行的项目的配置文件这里有两种写法正常来说应该把对应的SDK复制在项目所在的文件里这样项目的可移植性就比较强。但是我这里已经在工控机上进行 配置了就直接写了绝对路径。
配置lib文件 这里必须配置GxIAPICPPEx.lib静态库文件这个库是大恒相机对外编程的统一接口。接受一个新的项目文件一般来说配置文件里面有但是属性里面没有配置踩过坑之后发现需要重新配置。 找到GxlAPICPPEx.lib的路径 设置相关的配置文件 指定对应目录下方的静态库 具体编程过程 当前章节主要是涉及到如何调用相关的开发库对相机进行初始化并对相机进行控制同时保存对应的图片。具体操作如下 初始化获取相关的资源 反初始化释放所有的资源枚举设备获取所有资源开关设备
初始化和反初始化 在调用GxlAPICPPEx.lib之前相机必须要进行初始化初始化是通过IGXFactory进行初始化的。 #include iostream #include IGXFactory.h #include GalaxyException.husing namespace std;int main() {try {// 初始化相机实例IGXFactory::GetInstance().Init();}catch (CGalaxyExceptione) {cout error code e.GetErrorCode() endl;cout error description e.what() endl;}std::cout Hello World!\n; }在初始化中遇到CGalaxyException找不到标识符的问题解决办法如下在vs中找到异常会跳转到GXSmartPtr.h头文件中添加#include “GalaxyException.h”具体如下 加上这句之后后续就没有运行问题了运行截图如下 在调用相机的进程退出之后必须要进行反初始化释放GxlAPICPPEx库函数调用的所有资源。
// DahengCameraStart.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。 // 基础应用#include iostream #include IGXFactory.h #include GalaxyException.husing namespace std;int main() {try {// 初始化相机实例IGXFactory::GetInstance().Init();// 相机的反初始化释放所有占有的资源IGXFactory::GetInstance().Uninit();}catch (CGalaxyExceptione) {cout error code e.GetErrorCode() endl;cout error description e.what() endl;}std::cout Hello World!\n; }枚举设备 用户通过枚举设备来获取当前计算机中可以使用的设备并进行相关的调用用户通过调用 IGXFactory::GetInstance().UpdateDeviceList 枚举当前所有可用设备获取一个设备信息列表列表类型为 GxIAPICPP::gxdeviceinfo_vector。具体代码如下 int main() {try {// 初始化相机实例IGXFactory::GetInstance().Init();// 使用GxIAPICPP列表类保存相关的信息GxIAPICPP::gxdeviceinfo_vector vectorDeviceInfo;// 第一个参数是扫描的时长第二个参数是将获取的信息保存到对应的列表中IGXFactory::GetInstance().UpdateDeviceList(10000,vectorDeviceInfo);cout the camera num: vectorDeviceInfo.size() endl;for (int i 0; i vectorDeviceInfo.size(); i) {cout vectorDeviceInfo[i].GetVendorName() endl;cout vectorDeviceInfo[i].GetModelName() endl;}// 相机的反初始化释放所有占有的资源IGXFactory::GetInstance().Uninit();}catch (CGalaxyExceptione) {cout error code e.GetErrorCode() endl;cout error description e.what() endl;}std::cout Hello World!\n; }开关设备 控制设备关闭或者打开由于这里使用的是ME2P-1230-23U3M/C相机是通过USB3.0接口进行控制并不是千兆网相机所以MAC地址和IP地址都是空的 控制相机关闭打开总共有四种方式 SN 为设备序列号。 UserID 为用户自定义名称不支持 UserID 的设备此项为空字符串。 MAC 为设备 MAC 地址非千兆网相机此项为空字符串。 IP 为设备 IP 地址非千兆网相机此项为空字符串。 打开对应函数的对应函数接口是 IGXFactory::GetInstance().OpenDeviceBySNIGXFactory::GetInstance().OpenDeviceByUserIDIGXFactory::GetInstance().OpenDeviceByMACIGXFactory::GetInstance().OpenDeviceByIP 关闭对应相机的函数如下 //关闭设备之后不允许再调用 IDevice 以及设备的 IFeatureControl、IStream 的所有接口 objDevicePtr-Close();最终的代码我手上还没有相机老师就给我代码让我先看一下这里参考的是官方的参考手册代码 GxIAPICPP::gxdeviceinfo_vector vectorDeviceInfo; IGXFactory::GetInstance().UpdateDeviceList(1000, vectorDeviceInfo); if (vectorDeviceInfo.size() 0) { //打开链表中的第一个设备 CGXDevicePointerobjDevicePtr; GxIAPICPP::gxstringstrSN vectorDeviceInfo[0].GetSN(); GxIAPICPP::gxstringstrUserID vectorDeviceInfo[0].GetUserID(); GxIAPICPP::gxstringstrMAC vectorDeviceInfo[0].GetMAC(); GxIAPICPP::gxstringstrIP vectorDeviceInfo[0].GetIP(); //用户也可以直接指定打开的设备信息下面代码中使用的信息为伪造信息用户以实际设备为准 //GxIAPICPP::gxstring strSN GA0140100002; //GxIAPICPP::gxstring strUserID MyUserName; //GxIAPICPP::gxstring strMAC A1-0B-32-7C-6F-81; //GxIAPICPP::gxstring strIP 192.168.0.100; objDevicePtr IGXFactory::GetInstance().OpenDeviceBySN(strSN, GX_ACCESS_EXCLUSIVE); //objDevicePtr IGXFactory::GetInstance().OpenDeviceByUserID(strUserID, //GX_ACCESS_EXCLUSIVE); //objDevicePtr IGXFactory::GetInstance().OpenDeviceByMAC(strMAC, //GX_ACCESS_EXCLUSIVE); //objDevicePtr IGXFactory::GetInstance().OpenDeviceByIP(strIP, //GX_ACCESS_EXCLUSIVE); }属性控制 这部分东西比较琐碎并且不是重点就简单写一下 属性控制器种类 主要是通过IGXFeatureControl进行属性控制分别是有两类控制对象分别是设备Device和流Stream IGXFeatureControl IGXDevice::GetRemoteFeatureControl //包含主要设备信息,比如宽高、曝光增益等,一般用户主要使用此属性控制器即可。 IGXFeatureControl IGXDevice::GetFeatureControl //包含一些本地属性,不同类型的设备具备的功能也不一样。 IGXFeatureControl IGXStream::GetFeatureControl //流对象属性控制器,关于采集控制和采集数据统计的属性访问控制器。
图像采集控制和图像处理 采单帧 回调采集 总结 目前没有设备就不看他的说明文档了等我手里 有具体的相机了再继续开始写一些控制相机的基础代码了这里直接去看老师给的代码了 不往外放了。