zoukankan      html  css  js  c++  java
  • win10 Kinect2 Visualstudio2015 opencv3环境搭建

    1、下载kinect SDK (

    Kinect for Windows SDK 2.0

    ):  https://www.microsoft.com/en-us/download/details.aspx?id=44561

    下载以后直接安装,注意,必须是win8或者win10系统,由于是微软的产品,所以SDK安装过程非常简单,点击下一步就行,安装完成以后在:C:Program FilesMicrosoft SDKs   目录下

    2、安装Visual Studio2015

    3、安装Opencv3

    4、新建项目KinectTest,在源文件创建test.cpp文件,然后配置

    设置为  Debug模式  x64

    4.1 配置包含目录

    打开包含目录配置窗口,分别配置Kinect和opencv

    C:Program FilesMicrosoft SDKsKinectv2.0_1409inc   (默认)
    E:Opencvopencv3_2_1opencvmybuildinstallinclude   (自己opencv的目录)
    E:Opencvopencv3_2_1opencvmybuildinstallincludeopencv  (自己opencv的目录)
    E:Opencvopencv3_2_1opencvmybuildinstallincludeopencv2  (自己opencv的目录)

    4.2  配置库目录

    C:Program FilesMicrosoft SDKsKinectv2.0_1409Libx64   (默认)
    E:Opencvopencv3_2_1opencvmybuildinstallx64vc14lib  (自己opencv的目录)

    4.3 配置连接器  

    属性页 ->  链接器 -> 输入->附加依赖项

    输入:

    opencv_world300.lib
    Kinect20.lib

    参考代码:https://blog.csdn.net/ktigerhero3/article/details/49934745

    ===============================================代码

    #include <stdio.h>
    #include <iostream>
    #include <Kinect.h>
    #include <windows.h>
    #include <opencv/highgui.h>
    #include <cv.h>

    using namespace cv;
    using namespace std;


    int main()
    {
      IKinectSensor* m_pKinectSensor;
      IColorFrameSource* pColorFrameSource;
      IColorFrameReader* m_pColorFrameReader;
      IFrameDescription* pFrameDescription = NULL;
      ColorImageFormat imageFormat = ColorImageFormat_None;
      int nWidth, nHeight;
      uchar *pBuffer = NULL;

      UINT nBufferSize = 0;

      HRESULT hr = GetDefaultKinectSensor(&m_pKinectSensor);//获取默认传感器
      assert(hr >= 0);
      hr = m_pKinectSensor->Open();//打开传感器
      assert(hr >= 0);
      hr = m_pKinectSensor->get_ColorFrameSource(&pColorFrameSource);//打开颜色信息源
      assert(hr >= 0);
      pColorFrameSource->OpenReader(&m_pColorFrameReader);//打开颜色帧读取器
      assert(hr >= 0);
      while (1){
        //获取最近的彩色帧
        IColorFrame* pColorFrame = NULL;
        while ((hr < 0) || (NULL == pColorFrame))//循环直到获取到最近的一帧
        {
          hr = m_pColorFrameReader->AcquireLatestFrame(&pColorFrame);
        }
        //获取彩色图片信息包括宽,高,格式
        assert(hr >= 0);
        pColorFrame->get_FrameDescription(&pFrameDescription);//获取图片描述信息
        pFrameDescription->get_Width(&nWidth);
        pFrameDescription->get_Height(&nHeight);
        cout << "width=" << nWidth << endl;//我的kinect摄像头宽为1920
        cout << "Height=" << nHeight << endl;//我的kinect摄像头高为1080
        pColorFrame->get_RawColorImageFormat(&imageFormat);//输出结果为 ColorImageFormat_Yuy2  = 5,为Yuy2格式
        /*YUY2格式,以4:2:2方式打包 YUV 4:2:2
        每个色差信道的抽样率是亮度信道的一半,所以水平方向的色度抽样率只是4:4 : 4的一半。对非压缩的8比特量化的图像来说,
        每个由两个水平方向相邻的像素组成的宏像素需要占用4字节内存。
        下面的四个像素为:[Y0 U0 V0][Y1 U1 V1][Y2 U2 V2][Y3 U3 V3]
        存放的码流为:Y0 U0 Y1 V1 Y2 U2 Y3 V3
        映射出像素点为:[Y0 U0 V1][Y1 U0 V1][Y2 U2 V3][Y3 U2 V3]*/
        cout << "imageformat is " << imageFormat << endl;

        Mat colorImg(nHeight, nWidth, CV_8UC4);//新建一个mat对象,用于保存读入的图像,注意参数的高在前,宽在后
        pBuffer = colorImg.data;
        nBufferSize = colorImg.rows*colorImg.step;

        /*调用CopyConvertedFrameDataToArray,此函数的作用是从pColorFrame对象中拷贝nBufferSize个字节到pBuffer所指的Mat矩阵中,按
        ColorImageFormat_Bgra格式保存*/
        hr = pColorFrame->CopyConvertedFrameDataToArray(nBufferSize, reinterpret_cast<BYTE*>(pBuffer), ColorImageFormat_Bgra);
        pColorFrame->Release();

        namedWindow("display");
        imshow("display", colorImg);
        if (27 == waitKey(50))
          break;
      }
      return 0;
    }

    ==============================================

    或者在  C:Program FilesMicrosoft SDKsKinectv2.0_1409Samples   下面找一份项目,启动项目

  • 相关阅读:
    15.mysql数据库操作与Paramiko模块
    14.Gevent协程 SelectPollEpoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 RedisMemcached缓存 Paramiko SSH Twsited网络框架
    13 线程threading模块 join 线程锁之LockRlock信号量 将线程变为守护进程 Event事件  queue队列 生产者消费者模型 Queue队列 开发一个线程池 进程 语法 进程间通讯 进程池  多进程multiprocessing
    12.异常 isinstance 反射
    2.semantic-ui的官网文档说明
    11.Socket网络编程
    10.面向对象高级语法部分 经典类vs新式类   静态方法、类方法、属性方法 类的特殊方法 反射 异常处理 Socket开发基础
    9.对象 面向对象的特性:封装、继承、多态 类、方法、 #数据描述
    8.模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式
    1.sematic ui 安装
  • 原文地址:https://www.cnblogs.com/herd/p/9613276.html
Copyright © 2011-2022 走看看