Depth在kinect中经常被翻译为深度图,指的是图像到摄像头的距离,这些距离数据能让机器知道物理距离有多远。kinect通过两个红外摄像头来实现这个功能的。在这个例子里,就实现了深度图的提取和现实功能。
下面我们来研究下这个例子的代码,让我们对kinect for windows的开发包有个粗浅的认识。
代码结构:
主要的代码是DepthBasic.cpp,这个代码实现了深度图的读取
另外一个主要的代码文件时ImageRenderer,这个代码实现的是,将获取的深度图,展示在窗口上。
main函数:
int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
{
CDepthBasics application;
application.Run(hInstance, nCmdShow);
}
从main函数看,main函数只调用了两个函数,一个是CDepthBasics的构造函数,另外一个是CDepthBasics的Run函数。构造函数只是初始化,我们略过,继续看Run函数。
CDepthBasics::Run函数,解释都在代码中,大家可以看注释
int CDepthBasics::Run(HINSTANCE hInstance, int nCmdShow)
{
MSG msg = {0};
WNDCLASS wc;
// Dialog custom window class win32创建窗口前的准备工作,构造窗口类结构
ZeroMemory(&wc, sizeof(wc));
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.cbWndExtra = DLGWINDOWEXTRA;
wc.hInstance = hInstance;
wc.hCursor = LoadCursorW(NULL, IDC_ARROW);
wc.hIcon &