利用realsense官方SDK进行rgb图像和深度数据采集
2017-04-10 13:53
871 查看
#include <pxcsensemanager.h> #include <pxcsession.h> #include "util_render.h" #include <iostream> #include <string> #include <stdio.h> #include <opencv2\opencv.hpp> #include <windows.h> #define WIDTH 640 #define HEIGHT 480 using namespace cv; using namespace std; int main(int argc, char** argv) { UtilRender *renderColor = new UtilRender(L"COLOR_STREAM"); UtilRender *renderDepth = new UtilRender(L"DEPTH_STREAM"); PXCSenseManager *psm = 0; psm = PXCSenseManager::CreateInstance(); if (!psm) { wprintf_s(L"Unabel to create the PXCSenseManager\n"); return 1; } pxcStatus sts; psm->EnableStream(PXCCapture::STREAM_TYPE_COLOR, WIDTH, HEIGHT); psm->EnableStream(PXCCapture::STREAM_TYPE_DEPTH, WIDTH, HEIGHT); sts = psm->Init(); if (sts != PXC_STATUS_NO_ERROR) { wprintf_s(L"Unabel to Initializes the pipeline\n"); return 2; } PXCImage *colorIm, *depthIm; PXCImage::ImageData depth_data, color_data; PXCImage::ImageInfo depth_info, color_info; while (psm->AcquireFrame(true) >= PXC_STATUS_NO_ERROR) { if (psm->AcquireFrame(true) < PXC_STATUS_NO_ERROR) break; PXCCapture::Sample *sample = psm->QuerySample(); colorIm = sample->color; depthIm = sample->depth; if (colorIm->AcquireAccess(PXCImage::ACCESS_READ, PXCImage::PIXEL_FORMAT_RGB24, &color_data) < PXC_STATUS_NO_ERROR) wprintf_s(L"未正常获取彩色图\n"); if (depthIm->AcquireAccess(PXCImage::ACCESS_READ, &depth_data) < PXC_STATUS_NO_ERROR) wprintf_s(L"未正常获取深度图\n"); depth_info = sample->depth->QueryInfo(); color_info = sample->color->QueryInfo(); Mat depth(Size(depth_info.width, depth_info.height), CV_16UC1, (void*)depth_data.planes[0], depth_data.pitches[0] / sizeof(uchar)); Mat color(Size(color_info.width, color_info.height), CV_8UC3, (void*)color_data.planes[0], color_data.pitches[0] / sizeof(uchar)); depthIm->ReleaseAccess(&depth_data); colorIm->ReleaseAccess(&color_data); if (!renderColor->RenderFrame(colorIm)) break; if (!renderDepth->RenderFrame(depthIm)) break; psm->ReleaseFrame(); imshow("color", color); waitKey(1); imshow("depth", depth * 15); if (waitKey(10)==(int)'c') { FileStorage fs(".\\depth.xml", FileStorage::WRITE); fs << "depth" << depth; fs.release(); imwrite("Color.jpg", color); } waitKey(10); } psm->Release(); system("pause"); }
相关文章推荐
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-4应用生成模型进行预测
- Intel RealSense学习之图像及图像深度数据获取
- 深度学习文章5:使用caffe对自己的图像数据进行训练并测试
- RealSense 开发(一):深度图像获取
- 利用ELKB框架进行系统监控及数据采集
- 利用matlab对rgb图像进行裁剪
- 跪求!利用深度信念网络工具箱对凯斯西出大学轴承数据进行分类错误率无法降低怎么办
- 从RealSense中提取完整的深度和彩色图像,并存在opencv中的Mat里
- 基于USB摄像头视频数据采集和利用FFMPEG库函数进行视频数据压缩
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-3结合caffe中的CIFAR10修改相关配置文件并训练
- RealSense SDK 开发笔记 (三)获取R200的图像(OpenCV Mat)
- 利用RGB-D数据进行人体检测 People detection in RGB-D data
- ubuntu14.04利用opencv‘获取realsense图像
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-2生成图像库的均值文件
- 利用数码相机SDK开发图像采集应用程序
- fmri的图像数据在matlab中显示,利用imagesc工具进行显示,自带数据集-by 西南大学xulei教授
- 基于USB摄像头视频数据采集和利用FFMPEG库函数进行视频数据压缩
- 16 利用scipy.misc等库对jpg以及png等图像数据预处理(用于深度学习喂数据)
- 利用FFmpeg对RGB图像进行H264编码
- DCMTK学习之利用RGB进行图像的输出时,图像反向的问题