RealSense SDK 开发笔记 (二)枚举DCM下的摄像机与支持的影像串流

本文介绍了如何使用RealSense SDK枚举DCM下的摄像机和视频流,包括理解SDK中的重要概念如Implementation和Instance,并提供了枚举设备和视频流的代码示例。通过枚举,可以获取设备的详细信息如设备名称、序列号和固件版本等。同时,文章指出RealSense设备虽能模拟摄像头,但不能直接用OpenCV的VideoCapture打开。
摘要由CSDN通过智能技术生成

(转载请注明出处)

我真的不是故意把标题写这么严肃的这里写图片描述

这节重点解释SDK里那些看起来比较晦涩的,剩下那些简那些单的、能在chm文档里查到的粗略提一下或者不说废话。


PS:至于我们所关注的获取视频流,SDK给出了两种方式,一种是用PXCSenseManager获取默认设备上的数据。另一种是完全自定义的方法,一步一步地配置并获取更详细更有(加)价(无)值(聊)的数据。为了满(装)足(一)好(手)奇(好)心(B),我们暂时不用SenseManager。


关于怎么用另一种方式获取视频流,个人稍微总结了一下流(套)程(路):

Created with Raphaël 2.1.0 创建实例 限定RealSenseDCM服务描述信息 查询可用的服务 初始化影像设备 配置兼容的串流类型 就绪

简直蛋疼

来来来,先理解几个SDK中会经常见到的单词,否则你会怀疑你的阅读能力:
Implementation // 装置,这里对应着DCM服务(DCM是深度相机管理器的意思)
Instance            // 看得见摸得着的(雾)玩意儿
Capture           // 采集,特指信息采集
Device           // 设备IO、硬件IO、摄像头IO。。。反正看到Device 就知道这是在控制硬件(激光器、曝光乱七八糟的)

这里写图片描述……不说人话。

下面上代码,两大步:枚举设备、枚举视频流。


枚举设备并查看信息:       

不说废话,直接上代码:

    pxcStatus retStatus;// 函数返回状态
    // Realsense会话
    PXCSession *Session = PXCSession::CreateInstance();
    PXCSession::ImplVersion ver = Session->QueryVersion();
    cout << "Realsense SDK 版本 " << ver.major << "." << ver.minor << endl;
    cout << "==================================================" << endl;
    // 收集信息-----------------------------------------------------------------------------\\
    cout << "Checking Cable..." << endl;
    cout << "-----------------" << endl;
    // 限定为RealSense DCM视频服务
    PXCSession::ImplDesc Qtemplat = {};
    Qtemplat.group = PXCSession::IMPL_GROUP_SENSOR;// 分组于传感器
    Qtemplat.subgroup = PXCSession::IMPL_SUBGROUP_VIDEO_CAPTURE;// 子分组于视频采集
    for (size_t DCMidx = 0; ; DCMidx += 1)
    {
        // 查询可用的DCM服务
        PXCSession::ImplDesc Impl;
        retStatus = Session->QueryImpl(&Qtemplat, DCMidx, &Impl);
        if (retStatus < PXC_STATUS_NO_ERROR)break;
        wcout << "Enum_Index[" << DCMidx << "]" << "@" << Impl.friendlyName<< ":" << endl;

        // 尝试初始化信息采集
        PXCCapture *Capture = NULL;
        retStatus = Session->CreateImpl<PXCCapture>(&Impl, &Capture);
        if (retStatus<PXC_STATUS_NO_ERROR) continue;

        // 输出硬件信息
        for (size_t Didx = 0;; Didx += 1)
        {
            PXCCapture::DeviceInfo dinfo;
            retStatus = Capture->QueryDeviceInfo(Didx, &dinfo);
            
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值