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

购物网站每个模块主要功能最新seo新手教程

购物网站每个模块主要功能,最新seo新手教程,wordpress验证码插件,免费网站下载直播软件大全文章目录 引言正文相关开发库的介绍编程准备配置引用头文件GalaxyIncludes.h配置lib文件 具体编程过程初始化和反初始化枚举设备开关设备 属性控制属性控制器种类 图像采集控制和图像处理采单帧回调采集 总结 引言 在做老师的横向项目时,需要用大恒相机&#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.h"using namespace std;int main()
{try {// 初始化相机实例IGXFactory::GetInstance().Init();}catch (CGalaxyException&e) {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.h"using namespace std;int main()
{try {// 初始化相机实例IGXFactory::GetInstance().Init();// 相机的反初始化,释放所有占有的资源IGXFactory::GetInstance().Uninit();}catch (CGalaxyException&e) {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 (CGalaxyException&e) {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地址都是空的,

在这里插入图片描述

  • 控制相机关闭打开总共有四种方式
      1. SN 为设备序列号。
      1. UserID 为用户自定义名称(不支持 UserID 的设备此项为空字符串)。
      1. MAC 为设备 MAC 地址(非千兆网相机此项为空字符串)。
      1. IP 为设备 IP 地址(非千兆网相机此项为空字符串)。
  • 打开对应函数的对应函数接口是
    • IGXFactory::GetInstance().OpenDeviceBySN
    • IGXFactory::GetInstance().OpenDeviceByUserID
    • IGXFactory::GetInstance().OpenDeviceByMAC
    • IGXFactory::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
      1. IGXFeatureControl IGXDevice::GetRemoteFeatureControl //包含主要设备信息,比如宽高、曝光增益等,一般用户主要使用此属性控制器即可
      1. IGXFeatureControl IGXDevice::GetFeatureControl //包含一些本地属性,不同类型的设备具备的功能也不一样。
      1. IGXFeatureControl IGXStream::GetFeatureControl //流对象属性控制器,关于采集控制和采集数据统计的属性访问控制器

图像采集控制和图像处理

采单帧

回调采集

总结

  • 目前没有设备,就不看他的说明文档了,等我手里 有具体的相机了,再继续开始写一些控制相机的基础代码了,这里直接去看老师给的代码了, 不往外放了。
http://www.yayakq.cn/news/562802/

相关文章:

  • 怎么用网站做文案手表价格网站
  • 网站开发新技术探索网站规划与站点的建立实训报告
  • 有哪些做问卷调查的网站企业网站建设需要费用
  • 公司网站运营方案策划中国交通建设集团有限公司待遇
  • 网站在线沟通工具邯郸小学网站建设
  • 网站优化关键词网站设计公司发展
  • frontpage导入网站免费的销售管理系统
  • 定制型网站设计报价表wordpress一键关注
  • 企业网站建设外包服务合同长春老火车站图片
  • 润滑油网站怎样做效果更好杭州设计 公司 网站
  • 运动鞋的网站建设规划书怎么知道网站被k
  • 基因数据库网站开发价格python学习网站
  • 龙岗中心城有学网站建设新媒体营销和网络营销
  • 建设企业银行app做seo优化产品网站
  • 做音乐网站是不是侵权wordpress+万能搜索页
  • 请列举常见的网站推广方法wordpress search页面
  • 做电子板报的网站哪里有做旅游包车的网站
  • 软件技术专业介绍及就业方向seo北京优化
  • 河南专业网站建设公司望京 网站开发
  • 装修公司怎么做网站推广沈阳app开发公司哪家好
  • 网站建设的相关资料辽宁鹤城建设集团网站
  • 用花生壳怎么做网站的服务器视频网站推广怎么做
  • 应不应该购买老域名建设新网站互动平台网站
  • 网站后台系统使用深圳网络推广系统
  • 免费ps软件网站大连手机自适应网站建设服务
  • 网站倒计时代码google站长工具
  • 想建一个免费的网站网站后台无法更新缓存
  • 手机端便民服务平台网站建设wordpress 请求数量
  • 青岛网站制作企业网站空间如何搬家
  • 网页和网站的不同wordpress5.0.2版的新功能