资源简介
《Kinect for Windows SDK v2.0 开发笔记 (五)骨骼帧与笑面男》附带资源
代码片段和文件信息
#include “stdafx.h“
#include “included.h“
#include
static const float c_JointThickness = 3.0f;
static const float c_TrackedBoneThickness = 6.0f;
static const float c_InferredBoneThickness = 1.0f;
static const float c_HandSize = 30.0f;
// ImageRender类构造函数
ImageRenderer::ImageRenderer(){
// 创建资源
m_hrInit = CreateDeviceIndependentResources();
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))
{
- 上一篇:KinectSDK2.0深度帧获取
- 下一篇:KinectSDK2.0音频获取
相关资源
- KinectSDK2.0音频获取
- KinectSDK2.0深度帧获取
- KinectSDK2.0彩色帧获取
- Labview 中kinect使用例程
- CListCtrl控件实现Item项拖拽效果
- kinect控制PPT翻页
- 编制一个程序,要求输入5个学生的学
- KinectV2 opencv qt 实现平面测量
- 二叉树深度+建树+查找+遍历二叉树
- ROS下同时存储Kinect 深度和RGB图 代码包
- 强化学习实验 小车爬山例程
- 数据结构课程设计之客户积分管理系
- 微型伺服马达原理与控制.doc
- 模拟病人排队看病实验程序代码
- 远控小木马
- 气象数据生成卫星云图雷达雨量风力
- 声明一个类Point,然后利用它声明一个
- kinect深度图像去噪
- win环境下的cholmod库(已编译)
- 哈工程本科算法实验-0-1背包动态规划
- 住房管理系统课程设计报告
- 曹文信息学课件_竞赛中常用的STL
- Qt 访问redis接口代码
- 顶角判别法识别多边形的凸凹性,并
- NSGA2算法代码
- ListCtrl控件和下拉框,编辑框等控件组
- vs2017+qt在一个dll中集成多个自定义插
- Qt socket的文件传输
- linux 下c实现简单的网络嗅探器
- 最简洁马走日c程序回溯打印所有能走
评论
共有 条评论