资源简介
Kinectv2的各种图像数据在MFC平台上的显示,这里包括骨骼数据、深度数据等等,其他的像IR图像和RGB 图像也是类似的,比较简单,有问题欢迎留言讨论。Kinect系列博客地址http://blog.csdn.net/baolinq/article/details/52401116
代码片段和文件信息
#include “StdAfx.h“
#include “CvvImage.h“
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CV_INLINE RECT NormalizeRect(RECT r);
CV_INLINE RECT NormalizeRect(RECT r)
{
int t;
if (r.left > r.right)
{
t = r.left;
r.left = r.right;
r.right = t;
}
if (r.top > r.bottom)
{
t = r.top;
r.top = r.bottom;
r.bottom = t;
}
return r;
}
CV_INLINE CvRect RectToCvRect(RECT sr);
CV_INLINE CvRect RectToCvRect(RECT sr)
{
sr = NormalizeRect(sr);
return cvRect(sr.left sr.top sr.right - sr.left sr.bottom - sr.top);
}
CV_INLINE RECT CvRectToRect(CvRect sr);
CV_INLINE RECT CvRectToRect(CvRect sr)
{
RECT dr;
dr.left = sr.x;
dr.top = sr.y;
dr.right = sr.x + sr.width;
dr.bottom = sr.y + sr.height;
return dr;
}
CV_INLINE IplROI RectToROI(RECT r);
CV_INLINE IplROI RectToROI(RECT r)
{
IplROI roi;
r = NormalizeRect(r);
roi.xOffset = r.left;
roi.yOffset = r.top;
roi.width = r.right - r.left;
roi.height = r.bottom - r.top;
roi.coi = 0;
return roi;
}
void FillBitmapInfo(BITMAPINFO* bmi int width int height int bpp int origin)
{
assert(bmi && width >= 0 && height >= 0 && (bpp == 8 || bpp == 24 || bpp == 32));
BITMAPINFOHEADER* bmih = &(bmi->bmiHeader);
memset(bmih 0 sizeof(*bmih));
bmih->biSize = sizeof(BITMAPINFOHEADER);
bmih->biWidth = width;
bmih->biHeight = origin ? abs(height) : -abs(height);
bmih->biPlanes = 1;
bmih->biBitCount = (unsigned short)bpp;
bmih->biCompression = BI_RGB;
if (bpp == 8)
{
RGBQUAD* palette = bmi->bmiColors;
int i;
for (i = 0; i < 256; i++)
{
palette[i].rgbBlue = palette[i].rgbGreen = palette[i].rgbRed = (BYTE)i;
palette[i].rgbReserved = 0;
}
}
}
CvvImage::CvvImage()
{
m_img = 0;
}
void CvvImage::Destroy()
{
cvReleaseImage(&m_img);
}
CvvImage::~CvvImage()
{
Destroy();
}
bool CvvImage::Create(int w int h int bpp int origin)
{
const unsigned max_img_size = 10000;
if ((bpp != 8 && bpp != 24 && bpp != 32) ||
(unsigned)w >= max_img_size || (unsigned)h >= max_img_size ||
(origin != IPL_ORIGIN_TL && origin != IPL_ORIGIN_BL))
{
assert(0); // most probably it is a programming error
return false;
}
if (!m_img || Bpp() != bpp || m_img->width != w || m_img->height != h)
{
if (m_img && m_img->nSize == sizeof(IplImage))
Destroy();
/* prepare IPL header */
m_img = cvCreateImage(cvSize(w h) IPL_DEPTH_8U bpp / 8);
}
if (m_img)
m_img->origin = origin == 0 ? IPL_ORIGIN_TL : IPL_ORIGIN_BL;
return m_img != 0;
}
void CvvImage::CopyOf(CvvImage& image int desired_color)
{
IplImage* img = image.GetImage();
if (img)
{
CopyOf(img desired_color);
}
}
#define HG_IS_IMAGE(img) \
((img) != 0 && ((const IplImage*)(img))->nSize == sizeof(IplImage) && \
((IplImage*)img)->imageData != 0)
void CvvImage::C
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 121496 2012-04-09 20:57 Kinectv2 __MFC\1.jpg
文件 6463 2016-03-28 10:27 Kinectv2 __MFC\CvvImage.cpp
文件 2001 2016-03-28 09:58 Kinectv2 __MFC\CvvImage.h
文件 2304 2016-09-05 15:47 Kinectv2 __MFC\Debug\MFC_DEMO01.Build.CppClean.log
文件 94 2016-09-05 15:47 Kinectv2 __MFC\Debug\MFC_DEMO01.log
文件 92588 2016-09-05 15:35 Kinectv2 __MFC\MFC_DEMO01.APS
文件 2426 2016-03-28 09:33 Kinectv2 __MFC\MFC_DEMO01.cpp
文件 467 2016-03-28 09:33 Kinectv2 __MFC\MFC_DEMO01.h
文件 12938 2016-04-04 16:29 Kinectv2 __MFC\MFC_DEMO01.rc
文件 6450 2016-09-05 15:47 Kinectv2 __MFC\MFC_DEMO01.vcxproj
文件 2537 2016-04-02 15:03 Kinectv2 __MFC\MFC_DEMO01.vcxproj.filters
文件 165 2016-04-01 14:56 Kinectv2 __MFC\MFC_DEMO01.vcxproj.user
文件 7809 2016-09-05 15:47 Kinectv2 __MFC\MFC_DEMO01Dlg.cpp
文件 1350 2016-04-04 16:29 Kinectv2 __MFC\MFC_DEMO01Dlg.h
文件 14662 2016-09-05 15:47 Kinectv2 __MFC\Mykinect.cpp
文件 1575 2016-09-05 15:47 Kinectv2 __MFC\Mykinect.h
文件 4093 2016-03-28 09:33 Kinectv2 __MFC\ReadMe.txt
文件 67777 2013-07-22 01:18 Kinectv2 __MFC\res\MFC_DEMO01.ico
文件 676 2016-03-28 09:33 Kinectv2 __MFC\res\MFC_DEMO01.rc2
文件 2986 2016-04-04 16:28 Kinectv2 __MFC\resource.h
文件 1294 2016-04-02 15:03 Kinectv2 __MFC\SelectFolderDlg.h
文件 143 2016-03-28 09:33 Kinectv2 __MFC\stdafx.cpp
文件 1601 2016-04-01 21:42 Kinectv2 __MFC\stdafx.h
文件 234 2016-03-28 09:33 Kinectv2 __MFC\targetver.h
目录 0 2016-09-05 15:47 Kinectv2 __MFC\Debug\MFC_DEMO01.tlog
目录 0 2016-09-05 22:13 Kinectv2 __MFC\Debug
目录 0 2016-09-05 22:13 Kinectv2 __MFC\res
目录 0 2016-09-05 22:13 Kinectv2 __MFC
----------- --------- ---------- ----- ----
354129 28
............此处省略1个文件信息
- 上一篇:C语言中文分词源代码
- 下一篇:SDL入门教程
相关资源
- 移动的球体MFC制作
- MFC网络对战TCP五子棋
- 基于C++的简易FTP服务/客户端源码
- MFC程序设计,使用鼠标画图程序,包
- D2D显示图片(MFC)
- MFC gridctrl表格控件的简单
- STK与VC++ 6.0联合编程
- VC++MFC串口调试助手完整编辑过程介绍
- 20C++MFC课程设计之吹泡泡游戏
- 重写MFC treectrl控件的一个
- Drcom账号密码读取
- 图书管理系统MFC+SQL+VC
- mfc 物业管理系统
- MFC用树控件制作简单通讯录
- 鼠标左键准确定位MFC基于对话框的滑
- 鼠标左键准确定位MFC基于对话框的滑
- vc++ mfc 基于udp协议在不同ip地址之间
- 基于MFCVC6.0的简单计算器程序
- Visual C++程序设计与应用教程课后习题
- MFC实时网络连接装状况监测代码
- VC++基于mfc 实现对话框打开读取txt文件
- 巴特沃斯低通滤波器的MFC程序
- MFC创建UI线程
- mfc矩阵运算器
- 基于MFC的BMP图像处理
- VC++之MFC类库中文手册一怀去意---
- PE文件格式解析MFCC++源码
- VS2010之MFC入门到精通教程1-55全部
- MFC写的windows网络热点共享源代码
- mfc读取excel
评论
共有 条评论