社区已经帮助我指导了这个项目。
我正在使用R200相机,Visual Studio 2015,C ++,Windows 10和OpenCV 3.1。
我目前在左右红外摄像机中分别进行图像预处理以识别物体。我需要对象几何中心的坐标(x,y,z),所以我必须进行坐标映射,但SDK只允许在深度和RGB之间进行:
// Create the PXCProjection instance.
PXCProjection *projection=device->CreateProjection();
// color and depth image size.
PXCImage::ImageInfo dinfo=depth->QueryInfo();
PXCImage::ImageInfo cinfo=color->QueryInfo();
// Calculate the UV map.
PXCPointF32 *uvmap=new PXCPointF32[dinfo.width*dinfo.height];
projection->QueryUVMap(depth, uvmap);
// Translate depth points uv[] to color ij[]
for (int i=0;i<npoints;i++) {
ij[i].x=uvmap[(int)uv[i].y*dinfo.width+(int)uv[i].x].x*cinfo.width;
ij[i].y=uvmap[(int)uv[i].y*dinfo.width+(int)uv[i].x].y*cinfo.height;
}
// Clean up
delete[] uvmap;
projection->Release();
有谁知道如何在左右红外和深度之间进行映射?或者在默认的IR左或右RGB中为我做深度映射?
非常感谢。
答案 0 :(得分:1)
在开始时,我需要了解如何将在其中一个红外摄像机上检测到的特定点映射到深度图像。因此,我的最终解决方案是从RGB图像中减去感兴趣的扇区(在红外左侧相机中检测到,这是最接近彩色相机的),并从结果中减去映射到深度。
差距存在,但不是太多。