(转载请注明出处)
由于上合会议期间外面的快递无法到达市内,F200这些天多半是回不来了。。。
然后就等着我写SR300的吧科科~
上一节的代码的目的是了解SDK的蛋疼,也对手里的摄像头信息有个了解,当我们熟(麻)悉(木)之后很多信息就没必要管了,这节实(不)用(再)为(装)主(哔~),获取R200的彩色、深度和红外帧的数据,转换成Mat类型并显示出来。
看代码吧,到手即用(逃):
查找设备(获取并初始化指定摄像头的Device接口)
这个函数可以和SenseManager配合使用。
初始化SenseManager里面的模块之后,得益于Intel的渣调教,我们不得不自己动手再调一下曝光啥的。
根据iuid查找:
PXCCapture::Device* RealSense::ImplSeek(pxcUID iuid)
{
cout << "目标IUID:" << iuid << endl;
PXCCapture *Capture;
for (uint_fast8_t idx = 0; idx<UINT_FAST8_MAX; idx += 1)
{
PXCSession::ImplDesc Impl = {};
Impl.group = PXCSession::IMPL_GROUP_SENSOR;
Impl.subgroup = PXCSession::IMPL_SUBGROUP_VIDEO_CAPTURE;
retStatus = Session->QueryImpl(&Impl, idx, &Impl);
if (retStatus < PXC_STATUS_NO_ERROR) continue;
cout << "--------------------------------------------------------------------------------------"<<endl;
wcout << "DCM服务:" <<Impl.friendlyName;
cout <<" *** IUID是:"<< Impl.iuid << endl;
retStatus = Session->CreateImpl(&Impl, &Capture);
if (retStatus < PXC_STATUS_NO_ERROR) continue;
dinfo = { 0 };
retStatus = Capture->QueryDeviceInfo(idx, &dinfo);
if (retStatus < PXC_STATUS_NO_ERROR) { cout << "详细信息:获取失败" << endl; continue; }
wcout << "详细信息:" << endl;
wcout << " 名称:" << dinfo.name << " 位于DCM设备索引 " << dinfo.didx << endl;
wcout << " 可使用视频流:";
if (dinfo.streams&PXCCapture::STREAM_TYPE_COLOR) cout << "COLOR ";
if (dinfo.streams&PXCCapture::STREAM_TYPE_DEPTH) cout << "DEPTH ";
if (dinfo.streams&PXCCapture::STREAM_TYPE_IR) cout << "IR ";
if (dinfo.streams&PXCCapture::STREAM_TYPE_LEFT) cout << "LEFT" ;
if

本文介绍了如何使用RealSense SDK获取R200摄像头的彩色、深度和红外帧数据,并转换成OpenCV的Mat类型进行显示。通过代码示例展示了查找设备、初始化流格式、获取帧数据以及图像数据处理的过程,同时对比了使用SenseManager的资源消耗问题。
最低0.47元/天 解锁文章
5928

被折叠的 条评论
为什么被折叠?



