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

news2024/11/28 12:17:33

一、前言

        大恒驱动安装完成后,在安装目录有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_OBJECT

public:

    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.coloradmin.cn/o/2195541.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07目录1. Evaluation of Large Language Models for Summarization Tasks in the Medical Domain: A Narrative Review摘要研究…

rust中async/await的使用

在Rust中&#xff0c;async/await 用于编写异步代码。它允许您以同步的方式编写异步代码&#xff0c;使得异步操作更易于理解和编写。 安装依赖&#xff1a; cargo add futures cargo add async-std 使用示例&#xff1a; 示例1&#xff1a; use async_std::task::block_o…

学习MDX

MDX&#xff08;Markdown JSX&#xff09;是一种开源的文件格式&#xff0c;它允许你在Markdown文件中使用JavaScript表达式和组件。MDX将Markdown的易用性与React组件的强大功能结合起来&#xff0c;使得你可以在编写文档、博客文章或其他内容时&#xff0c;嵌入可交互的组件…

顶会论文复现:PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

文章目录 1 资料2 我的总结3 复现源码首先你需要有gpt的api接口安装&#xff1a;数据集执行指令源码 4 结果 1 资料 我复现的源码:https://github.com/Whiffe/test_set_contamination 官网源码&#xff1a;https://github.com/tatsu-lab/test_set_contamination 论文&#x…

tts(text to speech)使用 pyttsx3 实现文本转语音 - python 实现

文本转语音&#xff08;Text-to-Speech&#xff0c;TTS&#xff09;技术是一种将文本信息转换为口语输出的技术。它涉及多个学科&#xff0c;包括声学、语言学、数学信号处理技术和多媒体技术等。TTS技术能够将计算机中的文本信息转换为自然流畅的语音输出&#xff0c;广泛应用…

OJ在线评测系统 后端微服务架构 注册中心 Nacos入门到启动

注册中心 服务架构中的注册中心是一个关键组件&#xff0c;用于管理和协助微服务之间的通信。注册中心的主要职责是服务的注册和发现&#xff0c;确保各个微服务能够相互找到并进行调用。 主要功能&#xff1a; 服务注册&#xff1a;微服务在启动时&#xff0c;将自身信息&am…

OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3566移植案例(下)

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 持续更新中…… 概述 OpenHarmony Camera驱动模型结构 HDI Implementation&#x…

【ubuntu】ubuntu20.04安装显卡驱动

1.安装 点击右下角Apply Changes。 等安装好之后&#xff0c;重启。 现在的nvidia驱动已经很好安装了&#xff0c;比早期时安装出现黑屏等情况好了很多。 2.验证 nvidia-smi

Mybatis plus快速使用

文章目录 Mybatis plus快速使用1.ORM2.mybatis plus介绍3.mybatis plus使用1.添加依赖2.配置信息3.启动类加入 MapperScan&#xff08;“填入mapper包的位置”&#xff09;4.创建user接口&#xff0c;在mapper中加入UserMapper接口5.mybatis-plus crud注解启动springboot项目ma…

基于图像的3D动物重建与生成

一、背景与目标 3D-Fauna 是一款用于基于图像和视频进行四足动物3D重建与生成的开源方案。自然界展示了复杂的相似性与多样性,该方法通过学习来自网上图片的四足动物的3D形态,能够从单张图片生成可动画化的带有纹理的3D网格模型。其最终目标是通过大量扩展现有的解决方案,实…

Ajax面试题:(第一天)

目录 1.说一下网络模型 2.在浏览器地址栏键入URL&#xff0c;按下回车之后会经历以下流程&#xff1a; 3.什么是三次握手和四次挥手&#xff1f; 4.http协议和https协议的区别 1.说一下网络模型 注&#xff1a;各层含义按自己理解即可 2.在浏览器地址栏键入URL&#xff0c;…

mybatis自定义类型处理器

mybatis自定义类型处理器 其实使用MySQL或Oracle数据库很少会遇到自定义类型处理器的情况&#xff0c;之前是因为项目中使用了PGSQL才接触到这块的&#xff0c;这里简单做一下记录 要创建一个自定义的类型处理器&#xff0c;就需要继承BaseTypeHandler类或者实现TypeHandler接…

数据结构 ——— 相交链表(链表的共节点)

题目要求 两个单链表的头节点 headA 和 headB &#xff0c;请找出并返回两个单链表相交的起始节点&#xff0c;如果两个链表不存在相交节点&#xff0c;则返回 NULL 手搓两个相交简易链表 代码演示&#xff1a; struct ListNode* a1 (struct ListNode*)malloc(sizeof(struc…

Git 分支提交同步到主干的详细教程——(包含命令行和idea操作两种方式)

文章目录 Git 分支提交同步到主干的详细教程一、Git 命令行操作1. 确保分支上的代码已提交2. 切换到主干分支3. 拉取最新的主干分支代码4. 合并分支到主干方式一&#xff1a;使用 merge 进行合并方式二&#xff1a;使用 rebase 进行合并 5. 推送合并后的代码到远程主干分支命令…

github 搭建个人导航网

最近搭建了个 个人的导航网&#xff0c;具体内容见下图&#xff0c;欢迎大家访问吖&#xff0c;点击访问 具体实现是使用 vue3 编写&#xff0c;白嫖 github 的 page 部署 首先在 github上创建一个仓库&#xff1a;name.github.io # name是你 github 的名字 然后在本地创建一…

Linux安装部署MySQL8.0加遇着问题解决

1.首先我先给个URL下载MySQL官方网站https://downloads.mysql.com/archives/community/ 2.选择Linux的红帽系统 3.接着选择红帽系统的7版本,x86 4.接着选择MySQL版本,此时我选择8.4.0,下载rpm bundle这个,下载下面这个就好 5.Windows文件上传到Linux系统 rz上传文件命令,找到…

【D3.js in Action 3 精译_030】3.5 给 D3 条形图加注图表标签(下):Krisztina Szűcs 人物专访 + 3.6 本章小结

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可…

【redis-05】redis保证和mysql数据一致性

redis系列整体栏目 内容链接地址【一】redis基本数据类型和使用场景https://zhenghuisheng.blog.csdn.net/article/details/142406325【二】redis的持久化机制和原理https://zhenghuisheng.blog.csdn.net/article/details/142441756【三】redis缓存穿透、缓存击穿、缓存雪崩htt…

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

一、前言 上篇文章介绍了如何调用大恒SDK获得回调图片&#xff0c;这篇介绍如何使用这些图片并刷新到界面上。考虑到相机的帧率很高&#xff0c;比如200fps是很高的回调频率。那么我们的刷新频率是做不到这么快&#xff0c;也没必要这么快。一般刷新在60帧左右就够了。 二、思路…

springboot kafka多数据源,通过配置动态加载发送者和消费者

前言 最近做项目&#xff0c;需要支持kafka多数据源&#xff0c;实际上我们也可以通过代码固定写死多套kafka集群逻辑&#xff0c;但是如果需要不修改代码扩展呢&#xff0c;因为kafka本身不处理额外逻辑&#xff0c;只是起到削峰&#xff0c;和数据的传递&#xff0c;那么就需…