我尝试从深度视频帧创建点云,其像素值介于0到4500之间(从kinect v2录制)。
所以,如果我cout << depth
,我可以看到这些价值观。
现在我尝试使用带有
for (int y = 0; y < depthImageSize.height; ++y)
{
for (int x = 0; x < depthImageSize.width; ++x)
{
pcl::PointXYZRGBA &pt = result->at(x, y);
float depthValue = (float) depth.at<float>(y, x);
pt.x = (static_cast<float>(x) - centerX) * scaleFactorX * depthValue;
pt.y = (centerY - static_cast<float>(y)) * scaleFactorY * depthValue;
pt.z = depthValue;
}
}
在研究过程中,我发现这种深度可以指向云转换。 (float) depth.at<float>(y, x);
的浮点转换不会导致0到4500之间的相同值,但会产生-6.54209e + 35,1.82232e-40或-nan等值。
知道转换失败的原因吗?