Kinect使用说明
UINT uBufferSize = 0;
UINT16* pBuffer = nullptr;
if (pFrame->AccessUnderlyingBuffer(&uBufferSize, &pBuffer) == S_OK)
{
// 4d. Output depth value
int x = iWidth / 2;
y = iHeight / 2;
size_t idx = x + iWidth * y;
std::cout << pBuffer[idx] << std::endl;
}
else
{
cerr << "Data access error" << endl;
}
这一段代码可以获取深度信息,返回的深度信息2000就是2m.
if (pFrameReader->AcquireLatestFrame(&pFrame) == S_OK)
{
// 4c. copy the depth map to image
if (pFrame->CopyFrameDataToArray(iWidth * iHeight, reinterpret_cast<UINT16*>(mDepthImg.data)) == S_OK)
{
// 4d. convert from 16bit to 8bit
mDepthImg.convertTo(mImg8bit, CV_8U, 255.0f / uDepthMax);
cv::imshow("Depth Map", mImg8bit)
}
else
{
cerr << "Data copy error" << endl;
}
这一段展示了如何使用opencv