Pregunta

¿Alguna sugerencia sobre cómo podría ir sobre el trazado del espacio de color RGB como una matriz 2-D? Necesito una descripción teórica de lo que está pasando; un ejemplo de código o pseudocódigo sería de gran ayuda, pero no es necesario. Gracias!

¿Fue útil?

Solución

Si desea representar todos los colores en el espacio RGB en una cuadrícula 2D, puede ser imposible evitar discontinuidades / bordes bien definidos en el resultado. Sin embargo, algunas técnicas de mapeo se ven mejor que otros.

Ejemplos de Possiblywrong.wordpress.com poste allRGB: curvas de Hilbert y árboles de expansión al azar :

  • Traverse los píxeles de la imagen a través de una (orden 12) curva de Hilbert de 2 dimensiones, mientras que al mismo tiempo que atraviesa el cubo de color RGB a través de un (orden de 8) curva de Hilbert 3-dimensional, asignando cada píxel a su vez el color correspondiente Hilbert RGB 3D- loading= 2D">

  • "primero en amplitud de recorrido de árbol de expansión aleatoria de píxeles, la asignación de colores con el fin curva de Hilbert." primero en amplitud de recorrido de árbol de expansión aleatoria de píxeles, la asignación de colores con el fin curva de Hilbert.

También puedes ver allrgb.com , "El objetivo de allRGB es simple: para crear imágenes con un píxel para cada de color RGB (16777216);. que falta no un color, y no un color dos veces "

Otros consejos

Si no quiere perder ninguna información, tendrá que utilizar tres dimensiones. Si se puede perder algo de información dimensional, entonces es fácil. Sólo hacer esto:

// or HSV
int [256*256][256] colorMatrix;
for (int r = 0; r < 256; r++) {
    for (int r = 0; r < 256; r++) {
        for (int r = 0; r < 256; r++) {
            colorMatrix[256*r+g][b] = color(r, g, b);
        }
    }
}

En realidad no hay una buena respuesta para 2D, ya que realmente necesita 3 dimensiones. Por supuesto, se puede proyectar un espacio 3D en 2D, pero para retener una cantidad significativa de información que casi necesita proporcionar la manipulación normal de 3D, para que pueda ver la proyección visto desde varios ángulos diferentes y tal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top