资源简介
kinect获取彩色数据并用图片形式进行保存

代码片段和文件信息
#include“opencv2\opencv.hpp“
#include
#include//Kinect Header files
#pragma comment(lib“kinect20.lib“)
using namespace cv;
//Safe release for interfaces
template
inline void SafeRelease(Interface *& pInterfaceToRelease)
{
if (pInterfaceToRelease !=NULL)
{
pInterfaceToRelease->Release();
pInterfaceToRelease=NULL;
}
}
class Kinect
{
public:
static const int cColorWidth=1920;
static const int cColorHeight=1080;
int i;
Kinect();
~Kinect();
HRESULT InitKinect();//初始化Kinect
void Update();//更新数据
void ProcessColor(RGBQUAD* pBufferint nWidthint nHeight);//处理得到的数据
private:
IKinectSensor* m_pKinectSensor;//Current Kinect
IColorframeReader* m_pColorframeReader;//Color reader
RGBQUAD* m_pColorRGBX;
};
Kinect::Kinect()
{
i = 0;
m_pKinectSensor=NULL;
m_pColorframeReader=NULL;
m_pColorRGBX=new RGBQUAD[cColorWidth * cColorHeight];//create heap storage for colorin
} // pixel data in RGBX format
Kinect::~Kinect()
{
if (m_pColorRGBX)
{
delete [] m_pColorRGBX;
m_pColorRGBX=NULL;
}
SafeRelease(m_pColorframeReader);//done with color frame reader
if (m_pKinectSensor)
{
m_pKinectSensor->Close();//close the Kinect Sensor
}
SafeRelease(m_pKinectSensor);
}
HRESULT Kinect::InitKinect()
{
HRESULT hr;
hr=GetDefaultKinectSensor(&m_pKinectSensor);
if (FAILED(hr))
{
return hr;
}
if (m_pKinectSensor)
{
//Initialize the Kinect and get the color reader
IColorframeSource* pColorframeSource=NULL;
hr=m_pKinectSensor->Open();
if (SUCCEEDED(hr))
{
hr=m_pKinectSensor->get_ColorframeSource(&pColorframeSource);
}
if (SUCCEEDED(hr))
{
hr=pColorframeSource->OpenReader(&m_pColorframeReader);
}
SafeRelease(pColorframeSource);
}
if (!m_pKinectSensor||FAILED(hr))
{
printf(“No ready Kinect found!\n“);
return E_FAIL;
}
return hr;
}
void Kinect::Update()
{
if (!m_pColorframeReader)
{
return;
}
IColorframe* pColorframe=NULL;
HRESULT hr=m_pColorframeReader->AcquireLatestframe(&pColorframe);
if (SUCCEEDED(hr))
{
iframeDescription* pframeDescription=NULL;
int nWidth=0;
int nHeight=0;
ColorImageFormat imageFormat=ColorImageFormat_None;
UINT nBufferSize=0;
RGBQUAD* pBuffer=NULL;
if (SUCCEEDED(hr))
{
hr=pColorframe->get_frameDescription(&pframeDescription);
}
if (SUCCEEDED(hr))
{
hr=pframeDescription->get_Width(&nWidth);
}
if (SUCCEEDED(hr))
{
hr=pframeDescription->get_Height(&nHeight);
}
if (SUCCEEDED(hr))
{
hr=pColorframe->get_RawColorImageFormat(&imageFormat);
}
if (SUCCEEDED(hr))
{
if (imageFormat==ColorImageFormat_Bgra)
{
hr=pColorframe->AccessRawUnderlyingBuffer(&nBufferSizereinterpret_cast(&pBuffer));
}
else if (m_pColorRGBX)
{
pBuffer=m_pColorRGBX;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4077 2015-12-11 10:30 kinect获取彩色数据并用图片形式进行保存\m.cpp
文件 401 2015-12-11 10:47 kinect获取彩色数据并用图片形式进行保存\readMe.txt
目录 0 2015-12-11 10:36 kinect获取彩色数据并用图片形式进行保存
----------- --------- ---------- ----- ----
4478 3
- 上一篇:高数据率水声通信研究进展
- 下一篇:数字电子技术康华光第五版答案
相关资源
- Kinect手势代替鼠标控制PC
- 使用OpenNI自带的类进行简单手势识别
- 基于Kinect的三维重建
- OpenNI 官方版适用于Windows 32位系统
- 深度相机、Kinect及其应用
- kinect2.0获取深度图、彩色图,并利用
- Kinect2API文档
- KinectFusion 和 ElasticFusion 三维重建方法
- kinect v2 API详细说明
- SensorKinect093-Bin-Win64-v5.1.2.1
- Kinect V2 SDK API说明文档
- 获取kinect的数据并在Qt中显示的类的设
- Unity结合Kinect2体感开发:KinectForWind
- kinect2_SDK_深度图到RGB的映射
- kinect控制ppt播放完整源码
- 通过Kinect v2.0+ VS2012+openCV2.4.9将彩色帧
- Beginning Kinect Programming with Microsoft Ki
- kinect V2 学习资料
- Kinect+OpenNI获取深度图和颜色图(最新
- Kinect体感机器人中文报告
- Kinect体感机器人上位机源码
- kinectV2 抠图 自动拍照
- kinect v2.0 开发入门
- kinect体感书中英文对照
- 基于Kinect体感摄像头的手势识别算法
- Kinect+OpenNI学习笔记
- SensorKinect093-Bin-Win64-v5.1.2.1.msi
- simpleopenni 0.27 WIN3264
- KinectV2手指检测识别
- Kinect2的各种入门源码例程
评论
共有 条评论