本博客适用于SR300和R200的深度图像和RGB图像的提取。

OpenCV的安装

首先要安装opencv,在这里不做多讲,网上有很多教程.

SDK的安装

Realsense SR300 和 R200 使用的SDK版本是相同的,都是2016 R2(版本很重要),我使用的VS版本是2015.

提取深度图的程序代码

下面为提取深度图像的代码.

#include <pxcsensemanager.h>
#include <pxcsession.h>
#include "util_render.h"
#include <iostream>
#include <string>
#include <stdio.h>
#include <opencv2\opencv.hpp>#define WIDTH 640  //SR300和R200的这两个值是不同的,此处的值是R200
#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;for (int cframe = 0; cframe < 1000; cframe++){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"Color maps are not acquired normally.\n");if (depthIm->AcquireAccess(PXCImage::ACCESS_READ, &depth_data) < PXC_STATUS_NO_ERROR)wprintf_s(L"Depth maps are not acquired normally.\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));if (!renderColor->RenderFrame(colorIm)) break;if (!renderDepth->RenderFrame(depthIm)) break;psm->ReleaseFrame();stringstream ss;string str;ss << (cframe);str = ss.str();vector<int> compressiong_params;compressiong_params.push_back(CV_IMWRITE_PNG_COMPRESSION);compressiong_params.push_back(0);imwrite("Your path" + str + ".color.jpg", color, compressiong_params);imwrite("Your path" + str + ".depth.png", depth * 15, compressiong_params);}psm->Release();
}

参考于SCUT_Arucee大神
用VS2015打开上面代码,然后在属性里面将OpenCV目录和SDK的包含目录和库目录添加,运行之后就可以得到相应的扫描的情况。并且在我们设定的path下得到保存的RGB图像和Depth图像。



Realsense SR300 和 R200 提取深度图像并保存相关推荐

  1. 用ros从realsense中录制并提取rgb图像

    储存realsense采集的rgb图像到bag文件 打开第一个terminal: roslaunch realsense2_camera rs_camera.launch align_depth:=t ...

  2. 【点云处理技术之PCL】range image——提取深度图像的边界并可视化

    有三种不同的边界: object borders:目标最外层的边界 veil points:障碍物边界和阴影边界之间的插值点 shadow border:与遮挡相邻的背景点 三种边界的示意图如下: # ...

  3. realsense深度图像保存方法

    一般使用realsense时会保存视频序列,当保存深度图像时,需要注意保存的图像矩阵的格式,不然可能造成深度值的丢失. 在众多图像库中,一般会使用opencv中的imwrite() 函数进行深度图像的 ...

  4. OpenCV中保存不同深度图像的技巧

    什么是图像深度?   很多人开始学习OpenCV之后,接触的几个方法就包括imwrite函数,而且很快知道需要传入一个ndarray类型的mat对象作为实参,常规代码如下: imwrite(" ...

  5. HALCON示例程序resistor.hdev通过不同焦距图像提取深度信息

    小哥哥小姐姐觉得有用点个赞呗! HALCON示例程序resistor.hdev通过不同焦距图像提取深度信息 示例程序源码(加注释) 关于显示类函数解释 Names := [] dev_close_wi ...

  6. 论文笔记(五)FWENet:基于SAR图像的洪水水体提取深度卷积神经网络(CVPR)

    FWENet: a deep convolutional neural network for flood water body extraction based on SAR images 作者:J ...

  7. 一种基于深度学习的目标检测提取视频图像关键帧的方法

    摘要:针对传统的关键帧提取方法误差率高.实时性差等问题,提出了一种基于深度学习的目标检测提取视频图像关键帧的方法,分类提取列车头部.尾部及车身所在关键帧.在关键帧提取过程中,重点研究了基于SIFT特征 ...

  8. realsense系列(一):快速查看realsense相机深度图像和RGB图像

    realsense系列[一]:快速查看realsense相机深度图像和RGB图像 0.本次任务 1.环境准备 2.查看相机内容 0.本次任务 使用realsenseviewer快速查看相机内容 1.环 ...

  9. 利用PCL库从点云数据生成深度图像及关键点提取

    利用PCL库从点云数据生成生成深度图像及关键点提取 利用PCL库从点云数据生成深度图像及关键点提取 本想利用标准点云数据库分割成若干块,利用标准点云数据生成深度图像作为数据库用来验证算法,目前效果不是 ...

最新文章

  1. syntaxerror是什么错误_【第1643期】自定义错误及扩展错误
  2. Golang gRPC 示例
  3. 【机器学习基础】撒花!李宏毅机器学习 2021 版正式开放上线
  4. zookeeper设置临时节点失效时间_ZooKeeper 相关概念以及使用小结
  5. 女朋友问我什么是云计算?
  6. java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...
  7. NoSQL之Cassandra
  8. [python]数字编程练习
  9. MySQL字符串替换
  10. MySQL 这三道必问面试题,你都会吗?
  11. 【数据库】SQLITE3 加密3
  12. 【数字图像处理】霍夫(Hough)变换
  13. 学习3D游戏建模有哪些好的书籍教材?0基础如何开始
  14. ASEMI快恢复二极管RS1M、US1M和US1G能相互代换吗
  15. 如何设置和取消PPT文件的打开密码
  16. ,什么叫他妈的惊喜?
  17. 2021年N1叉车司机考试及N1叉车司机考试内容
  18. hadoop cdh maven
  19. 阿里云服务器性能测试方法(一条命令搞定)
  20. Linux水星UD198H驱动软件,水星ud13h驱动下载

热门文章

  1. java中static的理解
  2. cas client 更新ticket_SSO单点登录一:cas单点登录防止登出退出后刷新后退ticket失效报500错,也有退出后直接重新登录报票根验证错误...
  3. 人宅-MMOARPG无法登录问题
  4. android pdf显示不全,android 显示pdf文件内容
  5. 快速删除选定区域数据
  6. vs莫名其妙断点失效的一种解决方法
  7. linux取批量文件的关键字,Linux上批量查找文件里面带的关键字(grep 关键字的用法)-Go语言中文社区...
  8. pytest-xdist:并发执行用例设计(脱坑)
  9. Flutter环境配置遇到的问题
  10. 2# 在1#基础上改为mybatis连接数据库,模拟购物网站的实现