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

Qt+VS2019+大恒相机相机回调方式总结

一、前言

        大恒驱动安装完成后,在安装目录有SDK调用文档,里面有更详细的调用介绍,此文档对近期做的Demo做一个回顾性总结。

二、调用流程概述

三、针对性内容介绍:

1. 在执行相机操作之前,需要先执行此代码:IGXFactory::GetInstance().Init(),通常是用于初始化相机的工厂实例。在使用多个相机时,你只需要调用一次该初始化方法。

2.查询相机SN码:vecDeviceInfo封装了一层的vector,多相机连接时,会包含多个SN码

GxIAPICPP::gxdeviceinfo_vector vecDeviceInfo;

QStringList CameraConfig::getCameraSN()
{vecDeviceInfo.clear();IGXFactory::GetInstance().UpdateDeviceList(1000, vecDeviceInfo);QStringList listSN;for (int i = 0; i < vecDeviceInfo.size(); i++){GxIAPICPP::gxstring strSN = vecDeviceInfo[i].GetSN();listSN.append(QString::fromStdString(strSN.c_str()));}return listSN;
}

3.使用SN码连接对应的相机,并获得对应相机的设备指针:CGXDevicePointer cameraDevicePtr

curStr = ui->cmb_SN->currentText();
GxIAPICPP::gxstring strSN(curStr.toStdString().c_str());
cameraDevicePtr = IGXFactory::GetInstance().OpenDeviceBySN(strSN, GX_ACCESS_EXCLUSIVE);

4,获得属性控制器指针:CGXFeatureControlPointer objFeatureControlPtr;

        通过objFeatureControlPtr指针可以拿到相机的基本信息,比如相机功能模块具有哪些枚举内容,这个可以用来更新combobox的可选择项。同时可以获得当前的默认设置,用来初始化控件。

        此属性控制器可以向相机写入曝光时间,增益等信息。

objFeatureControlPtr = cameraDevicePtr->GetRemoteFeatureControl();
initCombobox(objFeatureControlPtr, "TriggerMode", ui->cmb_triggerMode);
initCombobox(objFeatureControlPtr, "TriggerSource", ui->cmb_triggerSource);
initCombobox(objFeatureControlPtr, "TriggerActivation", ui->cmb_triggerActivation);
initCombobox(objFeatureControlPtr, "PixelFormat", ui->cmb_PixelFormat);
initSpinBox(objFeatureControlPtr, "ExposureTime", slider_ExposeTime, "double");initSpinBox(objFeatureControlPtr, "Gain", slider_Gain, "double");
initSpinBox(objFeatureControlPtr, "Width", slider_Width, "int");
initSpinBox(objFeatureControlPtr, "Height", slider_Height, "int");
initSpinBox(objFeatureControlPtr, "OffsetX", slider_OffsetX, "int");
initSpinBox(objFeatureControlPtr, "OffsetY", slider_OffsetY, "int");

5,获得流指针:CGXStreamPointer objStreamPtr;

objStreamPtr = cameraDevicePtr->OpenStream(0);

6,注册回调事件:ICaptureEventHandler* pCaptureEventHandler;

        使用回调采集的方式,需要继承:ICaptureEventHandler,并重写内部的方法:DoOnImageCaptured

class Class_CaptureEventHandler  : public QObject, public ICaptureEventHandler
{Q_OBJECTpublic:void DoOnImageCaptured(CImageDataPointer& objImageDataPointer, void* pUserParam);

        注册事件

pCaptureEventHandler =new Class_CaptureEventHandler(this, graphicsView_Camera);
objStreamPtr->RegisterCaptureCallback(pCaptureEventHandler,NULL);

7,开始采集

objStreamPtr->SetAcqusitionBufferNumber(10);
//开启流通道采集
objStreamPtr->StartGrab();
//给设备发送开采命令
objFeatureControlPtr->GetCommandFeature("AcquisitionStart")->Execute();

8,结束采集

objFeatureControlPtr->GetCommandFeature("AcquisitionStop")->Execute();
objStreamPtr->StopGrab();
//关闭流通道
objStreamPtr->Close();

四、效果展示:

由于没有安装镜头,所以采图的效果只能看到亮暗变化

五、关于回调的图片使用-Tips:

        拿到的相机回调图片可以用队列的方式储存,并用计时器刷新到界面上去,详细的内容可参考下面这篇文章。

Qt+大恒相机回调图片刷新使用方式-CSDN博客

http://www.lryc.cn/news/455740.html

相关文章:

  • Python库pandas之六
  • [C++]使用纯opencv部署yolov11-seg实例分割onnx模型
  • PAT甲级-1122 Hamiltonian Cycle
  • Java 插入排序
  • 随机掉落的项目足迹:Vue3中vite.config.ts配置代理服务器解决跨域问题
  • C++笔记之标准库和boost库中bind占位符_1的写法差异
  • 二分查找
  • 关注、取关、Redis实现共同关注、 博客推送与分页查询
  • 专业高清录屏软件!Mirillis Action v4.40 解锁版下载,小白看了都会的安装方法
  • 胤娲科技:AI重塑会议——灵动未来,会议新纪元
  • Python画笔案例-080 绘制 颜色亮度测试
  • MATLAB工具库:数据统计分析工具MvCAT、MhAST等
  • 角色动画——RootMotion全解
  • 加密软件的桌面管理系统有什么?
  • 【stm32】寄存器(stm32技术手册下载链接)
  • django的路由分发
  • 《贪吃蛇小游戏 1.0》源码
  • 初入网络学习第一篇
  • (项目管理系列课程)项目规划阶段:项目范围管理-收集需求
  • SQl注入文件上传及sqli-labs第七关less-7
  • 想成为月薪过万的软件测试工程师?快看过来!
  • 找生网站方案———未来之窗行业应用跨平台架构
  • 全网都在找的Python生成器竟然在这里!简单几步,让你的代码更简洁、更高效!
  • 插入排序,希尔排序,和归并排序
  • Prompt 模版解析:诗人角色的创意引导与实践
  • zookeeper选举kafka集群的controller
  • 吉如一线段树:区间最值和历史最值
  • 数据库常见的安全特性有哪些
  • Debezium日常分享系列之:Debezium 3.0.0.Final发布
  • MVCC(多版本并发控制)