Карта int [0,255] другого цвета - PullRequest
1 голос
/ 04 марта 2012

У меня есть интервал int от 0 до 255.

Затем я хочу назначить цвет этому значению, что-то вроде представления глубины kinect.

Как я могу это сделатьчтобы сопоставить int цвету?

Я использую Java и его стандартные библиотеки.

1 Ответ

1 голос
/ 05 марта 2012

Я нашел это, которое решает мою проблему ...

Я не нашел другого способа, кроме как жестко закодировать его, если у кого-то есть лучший подход, пожалуйста, дайте мне знать.

http://www.pages.drexel.edu/~nk752/depthMapTut.html#Step%204

for (row = 0; row < H; row++) {
        for (col = 0; col < W; col++) {
            i = (unsigned long)(row*3*W + col*3);
            tempDepth = depthMapReal[row / increment][col / increment];
            if(tempDepth < 43){
                depthRed = tempDepth * 6;
                depthGreen = 0;
                depthBlue = tempDepth * 6;
            }
            if(tempDepth > 42 && tempDepth < 85){
                depthRed = 255 - (tempDepth - 43) * 6;
                depthGreen = 0;
                depthBlue = 255;
            }
            if(tempDepth > 84 && tempDepth < 128){
                depthRed = 0;
                depthGreen = (tempDepth - 85) * 6;
                depthBlue = 255;
            }
            if(tempDepth > 127 && tempDepth < 169){
                depthRed = 0;
                depthGreen = 255;
                depthBlue = 255 - (tempDepth - 128) * 6;
            }
            if(tempDepth > 168 && tempDepth < 212){
                depthRed = (tempDepth - 169) * 6;
                depthGreen = 255;
                depthBlue = 0;
            }
            if(tempDepth > 211 && tempDepth < 254){
                depthRed = 255;
                depthGreen = 255 - (tempDepth - 212) * 6;
                depthBlue = 0;
            }
            if(tempDepth > 253){
                depthRed = 255;
                depthGreen = 0;
                depthBlue = 0;
            }

            *(m_destinationBmp + i) = depthBlue;
            *(m_destinationBmp + i + 1) = depthGreen;
            *(m_destinationBmp + i + 2) = depthRed;
        }
    }

    break;
}
...