2021-09-11

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

猜你喜欢

转载自blog.csdn.net/m0_46505453/article/details/120242808