资源简介
《Kinect for Windows SDK v2 0 开发笔记 二 彩色帧获取》附加资源
代码片段和文件信息
#include “stdafx.h“
#include “included.h“
#include
// ImageRender类构造函数
ImageRenderer::ImageRenderer(){
// 创建资源
m_hrInit = CreateDeviceIndependentResources();
// 创建缓冲区
m_pColorRGBX = new RGBQUAD[IMAGE_WIDTH*IMAGE_HEIGHT];
if (!m_pColorRGBX) m_hrInit = E_OUTOFMEMORY;
m_timer.Start();
}
// 创建设备无关资源
HRESULT ImageRenderer::CreateDeviceIndependentResources(){
HRESULT hr = S_OK;
// 创建 Direct2D 工厂.
hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED &m_pD2DFactory);
if (SUCCEEDED(hr))
{
// 创建 WIC 工厂.
hr = CoCreateInstance(
CLSID_WICImagingFactory
NULL
CLSCTX_INPROC_SERVER
IID_IWICImagingFactory
reinterpret_cast(&m_pWICFactory)
);
}
if (SUCCEEDED(hr))
{
// 创建 DirectWrite 工厂.
hr = DWriteCreateFactory(
DWRITE_FACTORY_TYPE_SHARED
__uuidof(m_pDWriteFactory)
reinterpret_cast(&m_pDWriteFactory)
);
}
if (SUCCEEDED(hr))
{
// 创建正文文本格式.
hr = m_pDWriteFactory->CreateTextFormat(
L“Microsoft YaHei“
nullptr
DWRITE_FONT_WEIGHT_NORMAL
DWRITE_FONT_style_NORMAL
DWRITE_FONT_STRETCH_NORMAL
60.f
L““ //locale
&m_pTextFormatMain
);
}
return hr;
}
// 从文件读取位图
HRESULT ImageRenderer::LoadBitmapFromFile(
ID2D1RenderTarget *pRenderTarget
IWICImagingFactory *pIWICFactory
PCWSTR uri
UINT destinationWidth
UINT destinationHeight
ID2D1Bitmap **ppBitmap
)
{
IWICBitmapDecoder *pDecoder = NULL;
IWICBitmapframeDecode *pSource = NULL;
IWICStream *pStream = NULL;
IWICFormatConverter *pConverter = NULL;
IWICBitmapScaler *pScaler = NULL;
HRESULT hr = pIWICFactory->CreateDecoderFromFilename(
uri
NULL
GENERIC_READ
WICDecodemetadataCacheonload
&pDecoder
);
if (SUCCEEDED(hr))
{
hr = pDecoder->Getframe(0 &pSource);
}
if (SUCCEEDED(hr))
{
hr = pIWICFactory->CreateFormatConverter(&pConverter);
}
if (SUCCEEDED(hr))
{
if (destinationWidth != 0 || destinationHeight != 0)
{
UINT originalWidth originalHeight;
hr = pSource->GetSize(&originalWidth &originalHeight);
if (SUCCEEDED(hr))
{
if (destinationWidth == 0)
{
FLOAT scalar = static_cast(destinationHeight) / static_cast(originalHeight);
destinationWidth = static_cast(scalar * static_cast(originalWidth));
}
else if (destinationHeight == 0)
{
FLOAT scalar = static_cast(destinationWidth) / static_cast(originalWidth);
destinationHeight = static_cast(scalar * static_cast(originalHeight));
}
hr = pIWICFactory->CreateBitmapScaler(&pScaler);
if (SUCCEEDED(hr))
{
hr = pScaler->Initialize(
pSource
destinationWidth
destinationHeight
WICBitmapInterpolationModeCubic
);
}
if (SUCCEEDED(hr))
{
hr = pConverter->Initialize(
pScaler
GUID_WICPixel
- 上一篇:股票查询工具(含前端页面)
- 下一篇:KinectSDK2.0深度帧获取
相关资源
- 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的各种入门源码例程
评论
共有 条评论