MFC kinect 实现骨骼识别

本文介绍了如何使用MFC创建一个工程,实现在界面上通过Kinect进行深度相机的启动、显示深度图像及骨骼检测。通过步骤详细讲解了工程设置、界面布局、添加控件、处理按钮事件以及使用定时器更新数据。同时强调了程序实现过程中遇到的问题和解决经验。
摘要由CSDN通过智能技术生成

http://blog.csdn.net/baolinq/article/details/52373574
本文主要根据以上博主的文章,在其基础上将其改为用MFC界面实现,效果图如下
这里写图片描述
功能实现如下:点击打开深度相机按钮,可以启动kinect相机,然后在左边框图中进行显示,骨骼检测得到的图在右边框图实现。代码链接:这里写链接内容

一.建立工程

1.打开visual studio 新建MFC工程
这里写图片描述
2.点击下一步,然后选择单文档对话框,再点击下一步

这里写图片描述
3.点击下一步,去掉勾选粗框架和系统菜单,再点击创建完成就可以了
这里写图片描述
4.此时界面如图
这里写图片描述
5.删除TODD:在此放置对话框控件,同时删除取消按钮,保留确定按钮,并将确定按钮选择Caption 重新命名为close

这里写图片描述
6.找到工具箱,添加一个Button ,一个Caption命名为打开深度相机,然后在工具箱中找到picture Control控件,添加两个到我们的界面,一个ID号重新命名为 IDC_ColorImage ,另外一个命名为IDC_STATIC。 同时可以适当将界面拉大一点,然后在工具箱中找到Static Test 空间,添加两个到界面,一个为深度图像显示,一个为骨骼检测显示,此时界面如图:

这里写图片描述
7. 现在开始添加代码 ,首先添加opencv的头文件,我是放在bonetestDlg.h中,

#include "Kinect.h"
#include "afxwin.h"
#include<time.h>

bonetestDlg.cpp添加头文件如下

#include "stdafx.h"
#include "bonetest.h"
#include "bonetestDlg.h"
#include "afxdialogex.h"
#include <Kinect.h>
#include "cv.h"
#include <opencv2/opencv.hpp>   //opencv头文件
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp> 

using namespace cv;
using namespace std;            //命名空间
  1. 双击打开深度相机按钮,程序会转到***Dlg.cpp 的 void CmfcshowDlg::OnBnClickedOpenKinect() 。在这里添加代码在***Dlg.cpp实现与kinect相关的程序如下,并且采用定时器定时更新数据
//--------------------------与Kinect有关-----------------------//



void CbonetestDlg::OnBnClickedOpenKinect()
{
    HRESULT hr = myKinect.InitializeDefaultSensor();        //初始化默认Kinect

    if (SUCCEEDED(hr))
    {
        myKinect.Update();                              //刷新骨骼和深度数据 

    }
    SetTimer(35, 20, NULL);             //定时器


}
void CbonetestDlg::OnTimer(UINT_PTR nIDEvent)     //定时器处理
{
    switch (nIDEvent)
    {
    case 35:
        myKinect.Update();
    <
  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值