kinect获取实时深度数据
#include <stdio.h>
#include <Kinect.h>
#include <windows.h>
#include <highgui.h>
#include <cv.h>using namespace cv;// 转换depth图像到cv::Mat
Mat ConvertMat(const UINT16* pBuffer, int nWidth, int nHeight)
{Mat img(nHeight, nWidth, CV_8UC1);uchar* p_mat = img.data;//指向头指针const UINT16* pBufferEnd = pBuffer + (nWidth * nHeight);//指向最后一个元素的指针while (pBuffer < pBufferEnd)//16位最大值为65536{*p_mat++ = *pBuffer++ / 65536.0 * 256;}//free(p_mat);return img;
}int main()
{IKinectSensor* m_pKinectSensor;IDepthFrameReader* m_pDepthFrameReader;IFrameDescription* pFrameDescription = NULL;IDepthFrameSource* pDepthFrameSource = NULL;HRESULT hr = GetDefaultKinectSensor(&m_pKinectSensor);//获取默认kinect传感器assert(hr >= 0);printf("打开kinect传感器成功\n");hr = m_pKinectSensor->Open();//打开传感器assert(hr >= 0);hr = m_pKinectSensor->get_DepthFrameSource(&pDepthFrameSource);//获得深度信息传感器assert(hr >= 0);hr = pDepthFrameSource->OpenReader(&m_pDepthFrameReader);//打开深度信息帧读取器assert(hr >= 0);int i = 0;while (1){// IColorFrame* pColorFrame = NULL;// while ((hr < 0) || (NULL == pColorFrame))//循环直到获取到最近的一帧IDepthFrame* pDepthFrame = NULL;while (hr < 0 || pDepthFrame == NULL)hr = m_pDepthFrameReader->AcquireLatestFrame(&pDepthFrame);//由于有时候获取不到,因此循环获取最近的帧assert(hr >= 0);hr = pDepthFrame->get_FrameDescription(&pFrameDescription);//获取帧的像素信息(宽和高)int depth_width, depth_height;pFrameDescription->get_Width(&depth_width);pFrameDescription->get_Height(&depth_height);//printf("width=%d height=%d\n", depth_width, depth_height);USHORT nDepthMinReliableDistance = 0;//获取最大、最小深度距离信息USHORT nDepthMaxReliableDistance = 0;assert(hr >= 0);hr = pDepthFrame->get_DepthMinReliableDistance(&nDepthMinReliableDistance);assert(hr >= 0);hr = pDepthFrame->get_DepthMaxReliableDistance(&nDepthMaxReliableDistance);printf("%d nDepthMinD=%d nDepthMaxD=%d\n", i++, nDepthMinReliableDistance, nDepthMaxReliableDistance);UINT nBufferSize_depth = 0;UINT16 *pBuffer_depth = NULL;pDepthFrame->AccessUnderlyingBuffer(&nBufferSize_depth, &pBuffer_depth);//获取图像像素个数和指向图像的指针//转换为MAT格式Mat depthImg_show = ConvertMat(pBuffer_depth, depth_width, depth_height);//转换为8位的matpDepthFrame->Release();equalizeHist(depthImg_show, depthImg_show);//均衡化,为了提高显示效果//imwrite("MyFirstKinectImg.jpg", depthImg_show);//保存图片//用opencv显示namedWindow("display");imshow("display", depthImg_show);if (27 == waitKey(3) || 'Q' == waitKey(3) || 'q' == waitKey(3))return 0;}
}
kinect获取实时深度数据相关推荐
- 数据库api如何获取实时股票数据?
数据库获取实时股票数据操作如下: import pymysql dbconf = {'host':'127.0.0.1', 'port':3306, 'user':'root', 'password' ...
- ajax从新浪获取实时股票数据
ajax从新浪获取实时股票数据 最近在给公司做一个报表展示,然后领导要求上面加上一些股票的实时数据展示. 一开始同事给我一个聚合数据的网址,说从这上面可以获取到.我一看,哟呵,API接口什么的都提供好 ...
- STM32+MAX6675利用io口模拟SPI获取实时温度数据程序及代码
STM32+MAX6675利用io口模拟SPI获取实时温度数据程序及代码 本文采用的芯片为STM32F103RCT6 温度芯片为MAX6675 因为芯片的spi口只有3个,有部分需要外接W25Q128 ...
- Java通达信接口如何实现获取实时股票数据?
Java通达信接口如何实现获取实时股票数据? 一般有三种方式: 网页爬虫.采用爬虫去爬取目标网页的股票数据,去相关网站或技术论坛上找一下别人写的爬虫集成到项目中. 请求第三方API.会有专门的公司(例 ...
- STM32+MAX6675利用SPI获取实时温度数据程序及代码
之前写的STM32+MAX6675利用io口模拟SPI获取实时温度数据程序及代码 本文采用的芯片为STM32F103RCT6 温度芯片为MAX6675 模拟spi之前写过 里面的部分代码摘取的正点原子 ...
- Android 获取实时天气数据
先上效果图: 深圳实时天气数据 关于获取实时天气数据有很多种方法,像聚合数据.和风天气等平台都可以提供数据来源,本文主要使用和风天气SDK获取实时天气数据.以下是使用和风天气SDK来获取地方实时天气数 ...
- matlab 股票分时图_MATLAB怎样获取实时股市行情数据
引用j88r的回答: 1Sina股票数据接口 以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据 接口: http://hq.sinajs.cn/list=sh6 ...
- matlab股价分析论文,matlab股票分析:MATLAB怎样获取实时股市行情数据
1Sina股 据接 口 以大秦 (股票 :601006)为例,如 果要获取它的最新行情, 只 问新浪 的股票数据 接口: http://hq.sinajs.cn/list=sh601006 这个url ...
- 获取实时股票数据与股票数据接口API
http://jobtom.javaeye.com/blog/814594 股票数据的获取目前有如下两种方法可以获取: 1.http/javascript接口取数据 2.web-service接口 ...
- android 简单获取实时天气数据_绘图本身很简单但是获取数据很难
看到我们生信技能树的教学群有学员提问这样的图如何绘制: 其实我们讲解过,绘图代码本身搜索即可拿到,关键词 ggpubr paired boxplot ,输入到 https://cn.bing.com/ ...
最新文章
- hadoop 提高hdfs删文件效率----hadoop删除文件流程解析
- FPGA之道(45)正确的变量访问思路
- typescript获取数据库数据_肿瘤药敏多组学数据库(GDSC)的数据介绍和获取
- Microsoft Build 2021大会开始后,Develop Blog一系列更新
- MinGW - Minimalist GNU for Windows
- ORACLE sqlplus设置行数和宽度
- 关于在nw里使用require('printer')和nw.require('printer')报错的问题
- 瑞友天翼(GWT system)移动办公远程接入解决方案
- 紫色范冰冰WIN7主题包
- 十三届蓝桥杯EDA省赛赛后感
- 短信接口安全防护策略
- 仓库盘点的四大方法和盘点流程
- TensorFlow分类任务入门
- 一行脚本实现远程开机
- everything用于移动硬盘资料管理(二):离线搜索全部移动硬盘
- qt学习之旅--MinGW编译FFmpeg(32bit)
- 解决win10使用电池时自动调节亮度问题
- 极路由 安装php,极路由1S刷潘多拉安装优酷路由宝插件
- 内存自动清理.sql
- Latex排版[1]:输入矩阵(latex如何输入矩阵、对角阵、方程组)
热门文章
- android设计个人简历页面_制作个人简历网站教程
- 驻马店远大计算机阳业学院,电力学院
- css网页设计作业_运动中心网页设计作业成品
- c15语言,Steam
- [MicroPython]F407控制DS3231读取时间、温度
- windows 安装Rabbit MQ
- PoEdu - Windows阶段班 【Po学校】Windows编程 Lesson004_003-2 文件操作
- 相声登上直播平台 传统艺术能借风口浴火重生吗?
- 在浏览器中将表格导入到本地的EXCEL文件,注意控制内存
- ESXI5.5设置主机的时间自动同步服务 NTP