Author Topic: Microsoft SDK、OpenNI 和OpenKinect中深度值转成灰度值时所用的方法有什么区别?哪个效果比较好呢?  (Read 4595 times)

Grocean

  • Newbie
  • *
  • Posts: 10
听说Microsoft SDK、OpenNI 和OpenKinect中所用的深度值转成灰度值的方法是不同的
我搜了搜显示深度图的代码 发现都是封装好的 并没有给出具体算法

另外根据kinect应用开发实战中提到的方法:

255-255*深度值/4096 来将4096种深度值归一到256种灰度值内 也太简单粗暴了

如果想找到一种 既能在图片中直观显示出深度的差别,又能从这张图中完整还原出4096种深度值 有什么好的思路呢?

感激不尽

Grocean

  • Newbie
  • *
  • Posts: 10
看看能艾特版主大人么
@vinjn

vinjn

  • SuperManager
  • Hero Member
  • *****
  • Posts: 587
Code

struct Color
{
    BYTE r,g,b;
};

Color getFakeColorFromDepth(unsigned short depth)
{
    fake.r = depthValue / 256;
    fake.g = depthValue  - fake.r * 256;
    fake.b = 0;

    return fake;
}

unsigned short getDepthFromFakeColor(const Color& fake)
{
    return fake.r * 256 + fake.g;
}

Grocean

  • Newbie
  • *
  • Posts: 10

Tags: