从左或右红外图像到深度的坐标映射 - R200 Intelrealsense
Coordinate mapping from left or right IR image to depth - R200 Intelrealsense
社区已经帮助我指导了这个项目。
我正在使用 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与深度的映射?或者在它默认的 IR 左或右 RGB 中让我做深度映射?
非常感谢。
一开始我需要找出如何将其中一个红外相机上检测到的特定点映射到深度图像。因此,我的最终解决方案是从 RGB 图像和映射到深度的结果中减去感兴趣的部分(在红外左相机中检测到,它最接近彩色相机)。
差距存在,但不会太大。
https://i.stack.imgur.com/hjCjD.png
社区已经帮助我指导了这个项目。
我正在使用 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与深度的映射?或者在它默认的 IR 左或右 RGB 中让我做深度映射?
非常感谢。
一开始我需要找出如何将其中一个红外相机上检测到的特定点映射到深度图像。因此,我的最终解决方案是从 RGB 图像和映射到深度的结果中减去感兴趣的部分(在红外左相机中检测到,它最接近彩色相机)。
差距存在,但不会太大。
https://i.stack.imgur.com/hjCjD.png