基于MFC相机采集的实现与采集回调函数的应用实例
整理工程代码的时候发现有一段代码(因为按照调用关系写流程图,这一段没有被写上):
//---------------------------------------------------------------------------------
/**
\brief 回调函数
\param pFrame 回调参数\return 无
*/
//----------------------------------------------------------------------------------
void __stdcall CFIRADlg::OnFrameCallbackFun(GX_FRAME_CALLBACK_PARAM* pFrame)
{CFIRADlg* pDlg = (CFIRADlg*)(pFrame->pUserParam);if (pFrame->status == 0){memcpy(pDlg->m_pBufferRaw, pFrame->pImgBuf, pFrame->nImgSize);// RGB转换DxRaw8toRGB24(pDlg->m_pBufferRaw, pDlg->m_pBufferRGB, (VxUint32)(pDlg->m_nImageWidth), (VxUint32)(pDlg->m_nImageHeight), RAW2RGB_NEIGHBOUR, DX_PIXEL_COLOR_FILTER(pDlg->m_nPixelColorFilter), TRUE);// 图像质量提升if (pDlg->m_bIsImproveImg){//提升图像质量DxImageImprovment(pDlg->m_pBufferRGB, pDlg->m_pBufferRGB, (VxUint32)(pDlg->m_nImageWidth), (VxUint32)(pDlg->m_nImageHeight), pDlg->m_nColorCorrection, pDlg->m_pContrastLut, pDlg->m_pGammaLut);}// 显示图像pDlg->DrawImg();// 图像保存if (pDlg->m_bIsSaveImg){pDlg->SaveImage();}}
}
转到OnFrameCallbackFun定义:
/// 回调函数static void __stdcall OnFrameCallbackFun(GX_FRAME_CALLBACK_PARAM* pFrame);
再查找所有引用只有两处:声明和定义函数体
查找回调函数的相关资料,有关理解参考另一篇:理解回调函数
再转到参数的引用,有四处
跳到最后一个引用
在这里插入代码片//----------------------------------------------------------------------------------
/**
\brief 采集回调函数定义
\param pFrameData 帧数据信息结构体
\return void
*/
//----------------------------------------------------------------------------------
typedef void (GX_STDC* GXCaptureCallBack) (GX_FRAME_CALLBACK_PARAM *pFrameData);
再转到GXCaptureCallBack函数的定义
//----------------------------------------------------------------------------------
/**
\brief 注册采集回调函数
\attention 必须在发送开采命令之前注册采集回调函数
\param [in]hDevice 设备句柄
\param [in]pUserParam 用户私有数据
\param [in]callBackFun 用户注册的回调函数
\return GX_STATUS_SUCCESS 操作成功,没有发生错误GX_STATUS_NOT_INIT_API 没有调用GXInitLib初始化库GX_STATUS_INVALID_HANDLE 用户传入非法的句柄GX_STATUS_INVALID_PARAMETER 用户传入指针为NULLGX_STATUS_INVALID_CALL 发送开采命令后,不能注册采集回调函数其它错误情况请参见GX_STATUS_LIST
*/
//----------------------------------------------------------------------------------
GX_API GXRegisterCaptureCallback (GX_DEV_HANDLE hDevice, void *pUserParam, GXCaptureCallBack callBackFun);
说明上面OnFrameCallbackFun函数是采集函数的回调函数
采集函数如下:
//----------------------------------------------------------------------------------
/**
\brief 直接获取一帧图像
\attention 如果用户已注册采集回调函数,调用此接口会报错GX_STATUS_INVALID_CALL
\param [in]hDevice 设备句柄
\param [in,out]pFrameData 图像信息结构体指针
\param [in]nTimeout 超时时间
\return GX_STATUS_SUCCESS 操作成功,没有发生错误GX_STATUS_NOT_INIT_API 没有调用GXInitLib初始化库GX_STATUS_INVALID_HANDLE 用户传入非法的句柄GX_STATUS_INVALID_CALL 发送停采命令之前,不能注销采集回调函数GX_STATUS_INVALID_PARAMETER 用户传入图像地址指针为NULLGX_STATUS_NEED_MORE_BUFFER 用户分配的图像buffer小于实际需要的大小其它错误情况请参见GX_STATUS_LIST
*/
//----------------------------------------------------------------------------------
GX_API GXGetImage(GX_DEV_HANDLE hDevice, GX_FRAME_DATA *pFrameData, uint32_t nTimeout);
这里的意思也就是当GXGetImage在采集线程中被调用之后,OnFrameCallbackFun也就自动被系统调用,而OnFrameCallbackFun函数是我们自己写的回调函数。
基于MFC相机采集的实现与采集回调函数的应用实例相关推荐
- 回调函数方法连续采集和发送软触发采集
相机两种连续采集方式 第一种:回调机制 第一步,注册回调函数(头文件需要声明好) // 注册采集回调函数emStatus = GXRegisterCaptureCallback(m_hDevice, ...
- 基于MFC的Basler相机采集程序
基于MFC的Basler相机采集程序 编程软件VS2015 相机Basler acA4024-8gc 本文采用了opencv3.4.10,并且采用了opencv1.0版本时代的CvvImage类,其对 ...
- 基于Android的rgb七彩环颜色采集器
代码地址如下: http://www.demodashi.com/demo/11892.html 一.前言. 在大学期间,看到这个rgb灯,蛮好奇的,这么漂亮的颜色采集,并且可以同步到设备rbg灯颜色 ...
- STM32基于软件模拟IIC进行AHT21B温湿度采集
STM32基于软件模拟IIC进行AHT21B温湿度采集 一. IIC简介 1.1 IIC简介 1.2 实现方式 1.3 实现方式对比 二. AHT21B简介 2.1 简介 2.2 产品特点 2.3 外 ...
- ubuntu下安装大恒相机驱动并调用程序采集图像
一.ubuntu下安装大恒相机驱动 1.大恒GigE摄像头Ubuntu环境下的配置 大恒GigE摄像头Ubuntu环境下的配置 - Tzbubble - 博客园 2.官方的Linux版SDK常见问题解 ...
- Vitis项目:基于 ZYNQ 的 IMX2221 摄像头实时视频流采集传输 (一)传感器配置
项目:基于 ZYNQ 的 IMX2221 摄像头实时视频流采集传输 章节:传感器配置(一) 本章目的:使用 ZYNQ 芯片的 PS 端的 SPI 接口对 CMOS 图像传感器进行设置操作,保证 CMO ...
- 基于MFC的Basler工业相机SDK开发
一.软.硬件准备 VS2017 opencv3.4.6 相机:Basler acA2500-14gm 驱动:pylon 二.软硬件配置 下载安装pylon,到basler官方网站下载适合自己相机的py ...
- 深度相机 物体三维重建_基于深度相机的实时物体三维重建方法与流程
本发明涉及三维成像领域,特别是一种能够实时地对物体或人体进行三维重建的方法. 背景技术: 三维重建技术一直是计算机图形学和计算机视觉领域的热点课题.三维重建就是从输入数据中建立3D模型.随着各种面向普 ...
- 基于RGB-D相机的三维重建总览:静态与动态三维重建
" 近年来,随着AR,VR,虚拟试衣,自动驾驶等领域的兴起,三维重建技术得到了广泛的应用.今天分享一篇来自三维匠心的关于三维重建的综述文章.文章较长,建议收藏. " 三维匠心(已授 ...
最新文章
- idea装python插件_学习idea2020手动安装python插件的实现方法
- MySQL5.7.19版本压缩包安装方式的一些坑
- windows下使用pthread库
- NiFi导出自己模板和导入别人模板
- https的博客作业
- 花书+吴恩达深度学习(十五)序列模型之循环神经网络 RNN
- android开发(4) 闪屏的实现
- (day 48 - 双端队列的使用 ) 剑指 Offer 59 - II. 队列的最大值
- python语言适用于哪些领域_Python用于哪些领域
- 二分图最大权匹配:Kuhn-Munkres算法
- python产生随机数组_Python生成随机数组的方法小结
- mysql数据库字符集实践详解_mysql数据库 详解 之 自学成才1
- OutputFormat数据输出
- Centos Denyhosts 一键安装配置脚本
- APP、网站等注册、登录、改密等发送验证码短信的接入流程---创蓝253云通讯
- md5解密算法 java_MD5算法解密java
- 小程序获取oppenid时返回40125或者40029
- 市面上主流的音视频竞品分析对比
- 7种Dos攻击和防范方法
- GitCracken