问题描述
- Kinect 根据深度图像坐标获取彩色图像像素点
-
在 Kinect 中虽然可以通过相应的 api 把深度图像坐标转换到彩色图像坐标。但是我现在希望用彩色图像显示出某点与深度图像对应的像素。如果通过api MapDepthToColorImagePoint,只能得到彩色图像的像素坐标。
假如我现在得到了彩色图像的像素坐标了,那我也没办法直接通过该坐标知道该像素的具体信息(RGB值)吧?因为像素的信息是存放在 frame 结构体中的texture 的 rect 中的,而里面是以一维数组的形式存放像素点的。
也就是说彩色图像的坐标与彩色像素点的存放不存在直接对应关系,还要通过转换才能得到。问题是我应该如何转换?
又比如我现在知道一个彩色图像的像素点坐标是:x = 3,y = 4,那么我怎么知道该像素点的 rgb 信息呢?或者说我怎么知道其对应 rect 中数组的那个索引呢?谢谢!
解决方案
应该通过坐标系进行转换,彩色图像的坐标系是以中心为原点的,x 轴向右为正,y 轴向上为正。
假设图像的分辨率为:980*1024 则原点的位置在:490 行,512 列。
现在假设图像象素的坐标为:x,y 则应该对应的位置是:x + 512 列,-y + 490 行。
但是这样太麻烦了,而且这样要图像像素坐标有何用?
时间: 2024-11-14 02:44:16