分为两步
一、完成opencv在vs的环境配置
VS(visual studio)配置opencv环境 不用修改的测试代码-CSDN博客
上篇很清楚,这篇主要是第二步
二、完成kinect2.0在vs的环境配置
参考的文章有很多篇、但步骤都比较简单
按这篇来
VS2015配置Kinect V2和OpenCV3.4.1环境_kinect opencv-CSDN博客
重要的步骤为:
在【包含目录】中加入【$(KINECTSDK20_DIR)\inc】——具体为:
在【库目录】中加入【$(KINECTSDK20_DIR)\Lib\x64】
在【链接器】的【输入】里,【附加依赖项】中加入【kinect20.lib】
需要确保kinect2.0已经连接电脑哈!
测试代码
// VS2015opencv_model.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <Kinect.h> //Kinect的头文件
#include <iostream>
#include <opencv2\highgui.hpp> //opencv头文件
using namespace std;
using namespace cv;
int main(void)
{
IKinectSensor * mySensor = nullptr;
GetDefaultKinectSensor(&mySensor); //获取感应器
mySensor->Open(); //打开感应器
IDepthFrameSource * mySource = nullptr; //取得深度数据
mySensor->get_DepthFrameSource(&mySource);
int height = 0, width = 0;
IFrameDescription * myDescription = nullptr; //取得深度数据的分辨率
mySource->get_FrameDescription(&myDescription);
myDescription->get_Height(&height);
myDescription->get_Width(&width);
myDescription->Release();
IDepthFrameReader * myReader = nullptr;
mySource->OpenReader(&myReader); //打开深度数据的Reader
IDepthFrame * myFrame = nullptr;
Mat temp(height, width, CV_16UC1); //建立图像矩阵
Mat img(height, width, CV_8UC1);
while (1)
{
if (myReader->AcquireLatestFrame(&myFrame) == S_OK) //通过Reader尝试获取最新的一帧深度数据,放入深度帧中,并判断是否成功获取
{
myFrame->CopyFrameDataToArray(height * width, (UINT16 *)temp.data); //先把数据存入16位的图像矩阵中
temp.convertTo(img, CV_8UC1, 255.0 / 4500); //再把16位转换为8位
imshow("TEST", img);
myFrame->Release();
}
if (waitKey(30) == VK_ESCAPE)
break;
}
myReader->Release(); //释放不用的变量并且关闭感应器
mySource->Release();
mySensor->Close();
mySensor->Release();
return 0;
}
有图像就表示环境配成功了
这里也有参考其他的文章,但是没有成功!
例如:(有需要的同学可以看看)
Visual Studio 2019+Kinect2.0+opencv3.4.7工程配置_visual studio连接kinect-CSDN博客
Visual studio 2017+Kinect2.0+opencv3.2.0 配置_visual studio连接kinect-CSDN博客