#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获取实时深度数据相关推荐

  1. 数据库api如何获取实时股票数据?

    数据库获取实时股票数据操作如下: import pymysql dbconf = {'host':'127.0.0.1', 'port':3306, 'user':'root', 'password' ...

  2. ajax从新浪获取实时股票数据

    ajax从新浪获取实时股票数据 最近在给公司做一个报表展示,然后领导要求上面加上一些股票的实时数据展示. 一开始同事给我一个聚合数据的网址,说从这上面可以获取到.我一看,哟呵,API接口什么的都提供好 ...

  3. STM32+MAX6675利用io口模拟SPI获取实时温度数据程序及代码

    STM32+MAX6675利用io口模拟SPI获取实时温度数据程序及代码 本文采用的芯片为STM32F103RCT6 温度芯片为MAX6675 因为芯片的spi口只有3个,有部分需要外接W25Q128 ...

  4. Java通达信接口如何实现获取实时股票数据?

    Java通达信接口如何实现获取实时股票数据? 一般有三种方式: 网页爬虫.采用爬虫去爬取目标网页的股票数据,去相关网站或技术论坛上找一下别人写的爬虫集成到项目中. 请求第三方API.会有专门的公司(例 ...

  5. STM32+MAX6675利用SPI获取实时温度数据程序及代码

    之前写的STM32+MAX6675利用io口模拟SPI获取实时温度数据程序及代码 本文采用的芯片为STM32F103RCT6 温度芯片为MAX6675 模拟spi之前写过 里面的部分代码摘取的正点原子 ...

  6. Android 获取实时天气数据

    先上效果图: 深圳实时天气数据 关于获取实时天气数据有很多种方法,像聚合数据.和风天气等平台都可以提供数据来源,本文主要使用和风天气SDK获取实时天气数据.以下是使用和风天气SDK来获取地方实时天气数 ...

  7. matlab 股票分时图_MATLAB怎样获取实时股市行情数据

    引用j88r的回答: 1Sina股票数据接口 以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据 接口: http://hq.sinajs.cn/list=sh6 ...

  8. matlab股价分析论文,matlab股票分析:MATLAB怎样获取实时股市行情数据

    1Sina股 据接 口 以大秦 (股票 :601006)为例,如 果要获取它的最新行情, 只 问新浪 的股票数据 接口: http://hq.sinajs.cn/list=sh601006 这个url ...

  9. 获取实时股票数据与股票数据接口API

    http://jobtom.javaeye.com/blog/814594 股票数据的获取目前有如下两种方法可以获取: 1.http/javascript接口取数据  2.web-service接口 ...

  10. android 简单获取实时天气数据_绘图本身很简单但是获取数据很难

    看到我们生信技能树的教学群有学员提问这样的图如何绘制: 其实我们讲解过,绘图代码本身搜索即可拿到,关键词 ggpubr paired boxplot ,输入到 https://cn.bing.com/ ...

最新文章

  1. hadoop 提高hdfs删文件效率----hadoop删除文件流程解析
  2. FPGA之道(45)正确的变量访问思路
  3. typescript获取数据库数据_肿瘤药敏多组学数据库(GDSC)的数据介绍和获取
  4. Microsoft Build 2021大会开始后,Develop Blog一系列更新
  5. MinGW - Minimalist GNU for Windows
  6. ORACLE sqlplus设置行数和宽度
  7. 关于在nw里使用require('printer')和nw.require('printer')报错的问题
  8. 瑞友天翼(GWT system)移动办公远程接入解决方案
  9. 紫色范冰冰WIN7主题包
  10. 十三届蓝桥杯EDA省赛赛后感
  11. 短信接口安全防护策略
  12. 仓库盘点的四大方法和盘点流程
  13. TensorFlow分类任务入门
  14. 一行脚本实现远程开机
  15. everything用于移动硬盘资料管理(二):离线搜索全部移动硬盘
  16. qt学习之旅--MinGW编译FFmpeg(32bit)
  17. 解决win10使用电池时自动调节亮度问题
  18. 极路由 安装php,极路由1S刷潘多拉安装优酷路由宝插件
  19. 内存自动清理.sql
  20. Latex排版[1]:输入矩阵(latex如何输入矩阵、对角阵、方程组)

热门文章

  1. android设计个人简历页面_制作个人简历网站教程
  2. 驻马店远大计算机阳业学院,电力学院
  3. css网页设计作业_运动中心网页设计作业成品
  4. c15语言,Steam
  5. [MicroPython]F407控制DS3231读取时间、温度
  6. windows 安装Rabbit MQ
  7. PoEdu - Windows阶段班 【Po学校】Windows编程 Lesson004_003-2 文件操作
  8. 相声登上直播平台 传统艺术能借风口浴火重生吗?
  9. 在浏览器中将表格导入到本地的EXCEL文件,注意控制内存
  10. ESXI5.5设置主机的时间自动同步服务 NTP