Realsense SR300 和 R200 提取深度图像并保存
本博客适用于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 提取深度图像并保存相关推荐
- 用ros从realsense中录制并提取rgb图像
储存realsense采集的rgb图像到bag文件 打开第一个terminal: roslaunch realsense2_camera rs_camera.launch align_depth:=t ...
- 【点云处理技术之PCL】range image——提取深度图像的边界并可视化
有三种不同的边界: object borders:目标最外层的边界 veil points:障碍物边界和阴影边界之间的插值点 shadow border:与遮挡相邻的背景点 三种边界的示意图如下: # ...
- realsense深度图像保存方法
一般使用realsense时会保存视频序列,当保存深度图像时,需要注意保存的图像矩阵的格式,不然可能造成深度值的丢失. 在众多图像库中,一般会使用opencv中的imwrite() 函数进行深度图像的 ...
- OpenCV中保存不同深度图像的技巧
什么是图像深度? 很多人开始学习OpenCV之后,接触的几个方法就包括imwrite函数,而且很快知道需要传入一个ndarray类型的mat对象作为实参,常规代码如下: imwrite(" ...
- HALCON示例程序resistor.hdev通过不同焦距图像提取深度信息
小哥哥小姐姐觉得有用点个赞呗! HALCON示例程序resistor.hdev通过不同焦距图像提取深度信息 示例程序源码(加注释) 关于显示类函数解释 Names := [] dev_close_wi ...
- 论文笔记(五)FWENet:基于SAR图像的洪水水体提取深度卷积神经网络(CVPR)
FWENet: a deep convolutional neural network for flood water body extraction based on SAR images 作者:J ...
- 一种基于深度学习的目标检测提取视频图像关键帧的方法
摘要:针对传统的关键帧提取方法误差率高.实时性差等问题,提出了一种基于深度学习的目标检测提取视频图像关键帧的方法,分类提取列车头部.尾部及车身所在关键帧.在关键帧提取过程中,重点研究了基于SIFT特征 ...
- realsense系列(一):快速查看realsense相机深度图像和RGB图像
realsense系列[一]:快速查看realsense相机深度图像和RGB图像 0.本次任务 1.环境准备 2.查看相机内容 0.本次任务 使用realsenseviewer快速查看相机内容 1.环 ...
- 利用PCL库从点云数据生成深度图像及关键点提取
利用PCL库从点云数据生成生成深度图像及关键点提取 利用PCL库从点云数据生成深度图像及关键点提取 本想利用标准点云数据库分割成若干块,利用标准点云数据生成深度图像作为数据库用来验证算法,目前效果不是 ...
最新文章
- syntaxerror是什么错误_【第1643期】自定义错误及扩展错误
- Golang gRPC 示例
- 【机器学习基础】撒花!李宏毅机器学习 2021 版正式开放上线
- zookeeper设置临时节点失效时间_ZooKeeper 相关概念以及使用小结
- 女朋友问我什么是云计算?
- java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...
- NoSQL之Cassandra
- [python]数字编程练习
- MySQL字符串替换
- MySQL 这三道必问面试题,你都会吗?
- 【数据库】SQLITE3 加密3
- 【数字图像处理】霍夫(Hough)变换
- 学习3D游戏建模有哪些好的书籍教材?0基础如何开始
- ASEMI快恢复二极管RS1M、US1M和US1G能相互代换吗
- 如何设置和取消PPT文件的打开密码
- ,什么叫他妈的惊喜?
- 2021年N1叉车司机考试及N1叉车司机考试内容
- hadoop cdh maven
- 阿里云服务器性能测试方法(一条命令搞定)
- Linux水星UD198H驱动软件,水星ud13h驱动下载
热门文章
- java中static的理解
- cas client 更新ticket_SSO单点登录一:cas单点登录防止登出退出后刷新后退ticket失效报500错,也有退出后直接重新登录报票根验证错误...
- 人宅-MMOARPG无法登录问题
- android pdf显示不全,android 显示pdf文件内容
- 快速删除选定区域数据
- vs莫名其妙断点失效的一种解决方法
- linux取批量文件的关键字,Linux上批量查找文件里面带的关键字(grep 关键字的用法)-Go语言中文社区...
- pytest-xdist:并发执行用例设计(脱坑)
- Flutter环境配置遇到的问题
- 2# 在1#基础上改为mybatis连接数据库,模拟购物网站的实现