Anuncio

Colapsar
No hay ningún anuncio todavía.

Espacio de color RGB: fórmula

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Representación Espacio de color RGB: fórmula

    Hola buenas

    Estoy trabajando con valores de RGB y el programa GNUPLOt. Dicho programa utiliza la fórmula RGB (R,G,B) = 256*256*int(R) + 256*int(G) + int(B).
    ¿Alguien podría decirme si conoce el origen de esta fórmula? Es decir, ¿por qué es así? ¿Por qué es R el que se multiplica por 65536 y no B?

    Estoy mareada de buscar en la web y no encuenro ninguna solución. Sólo he averiguado que el número es 256 porque es el número de colores que se pueden obtener con cada parámetro, pero no el porqué de su orden.

    Muchas gracias
    Un saludoooo
    Selena

  • #2
    Re: Espacio de color RGB: fórmula

    Tiene que ver con la forma que interpretan los números internamente los ordenadores. Como seguramente sabes, utilizan código binario. Cada componente del color es un byte (8bits). Por lo tanto, un color completo son tres bytes. Es decir, 24 dígitos binarios.

    La codificación binaria tiene la particularidad que cada vez que multiplicas por una potencia de 2, como ), es equivalente a añadir ceros a la derecha. Esto es lo mismo que pasa cuando multiplicamos un número decimal por una potencia de 10. Fíjate que . Así que multiplicar por 256 lo que hace es añadir 8 ceros a la derecha del número binario. Obviamente, multiplicar dos veces (o, lo que es lo mismo, multiplicar una vez por 65536) tiene el efecto de añadir 16 ceros a la derecha.

    Al final, lo que consigues con la fórmula que has puesto es generar en la memoria del ordenador un entero que ocupa 24 bits (3 bytes). Los primeros ocho bitscorresponden a la componente R, los ocho intermedios a la G y los últimos ocho a la B.

    Un ejemplo: El color (r,g,b) = (22, 232, 186) es una especie de verde azuloso. Convertido a binario (lo puedes hacer con cualquier calculadora, o incluso en el propio google), las componentes son


    La fórmula que tu has puesto arroja el resultado


    Fíjate que convertir esto a binario nos da el siguiente resultado



    No sé si así queda suficientemente claro. Quizá te sirva un ejemplo decimal. Si quisiéramos montar un único numero entero juntando los dígitos de las tres componentes, tendrías que multiplicar por una potencia de 10. Como los colores tienen 3 dígitos, será . Eso te daría


    Pues esto es lo mismo, pero se utiliza porque esos números ocupan 8 dígitos binarios.

    Fíjate que no es tan importante el número de valores diferentes, sino la cantidad de dígitos que quieres reservar.
    Última edición por pod; 28/02/2018, 16:09:15.
    La única alternativo a ser Físico era ser etéreo.
    @lwdFisica

    Comentario


    • #3
      Re: Espacio de color RGB: fórmula

      Cada uno de los tres colores primarios, Rojo, Verde y Azul, se pueden mover en un rango de valores de intensidad que van desde 0 hasta 255, o sea, pueden obtener 256 valores diferentes, en la combinación de los tres es irrelevante el orden por el cual inicies, lo importante es que cuentes cada posible combinación una sola vez, es por eso que en teoría puedes generar una paleta de 16.777.216 colores diferentes, pasando desde el Negro (R=0;G=0;B=0) hasta el Blanco en (R=255;G=255;B=255).

      El uso de esos tres colores viene más que todo por la teoría del Color, puedes revisar información sobre los círculos cromáticos y la generación de los diferentes colores a través de la combinación de los colores primarios, recuerda también que los colores se pueden generar por adición o por sustracción, en el caso de los monitores los colores se crean por adición utilizando para ello al Rojo, Verde y Azul como colores primarios.
      Última edición por Maq77; 01/03/2018, 13:54:20. Motivo: Corregir un error tipográfico

      Comentario


      • #4
        Re: Espacio de color RGB: fórmula

        Hola SELENA, bienvenida a La web de Física, por favor como miembro reciente lee atentamente Consejos para conseguir ayuda de forma efectiva

        Escrito por pod Ver mensaje
        Tiene que ver con la forma que interpretan los números internamente los ordenadores. Como seguramente sabes, utilizan código binario. Cada componente del color es un byte (8bits). Por lo tanto, un color completo son tres bytes. Es decir, 24 dígitos binarios.

        La codificación binaria tiene la particularidad que cada vez que multiplicas por una potencia de 2, como ), es equivalente a añadir ceros a la derecha. Esto es lo mismo que pasa cuando multiplicamos un número decimal por una potencia de 10. Fíjate que . Así que multiplicar por 256 lo que hace es añadir 8 ceros a la derecha del número binario. Obviamente, multiplicar dos veces (o, lo que es lo mismo, multiplicar una vez por 65536) tiene el efecto de añadir 16 ceros a la derecha.

        Al final, lo que consigues con la fórmula que has puesto es generar en la memoria del ordenador un entero que ocupa 24 bits (3 bytes). Los primeros ocho bitscorresponden a la componente R, los ocho intermedios a la G y los últimos ocho a la B.

        Un ejemplo: El color (r,g,b) = (22, 232, 186) es una especie de verde azuloso. Convertido a binario (lo puedes hacer con cualquier calculadora, o incluso en el propio google), las componentes son


        La fórmula que tu has puesto arroja el resultado


        Fíjate que convertir esto a binario nos da el siguiente resultado



        No sé si así queda suficientemente claro. Quizá te sirva un ejemplo decimal. Si quisiéramos montar un único numero entero juntando los dígitos de las tres componentes, tendrías que multiplicar por una potencia de 10. Como los colores tienen 3 dígitos, será . Eso te daría


        Pues esto es lo mismo, pero se utiliza porque esos números ocupan 8 dígitos binarios.

        Fíjate que no es tan importante el número de valores diferentes, sino la cantidad de dígitos que quieres reservar.
        Escrito por Maq77 Ver mensaje
        Cada uno de los tres colores primarios, Rojo, Verde y Azul, se pueden mover en un rango de valores de intensidad que van desde 0 hasta 255, o sea, pueden obtener 256 valores diferentes, en la combinación de los tres es irrelevante el orden por el cual inicies, lo importante es que cuentes cada posible combinación una sola vez, es por eso que en teoría puedes generar una paleta de 16.777.216 colores diferentes, pasando desde el Negro (R=0;G=0;B=0) hasta el Blanco en (R=255;G=255;B=255).

        El uso de esos tres colores viene más que todo por la teoría del Color, puedes revisar información sobre los círculos cromáticos y la generación de los diferentes colores a través de la combinación de los colores primarios, recuerda también que los colores se pueden generar por adición o por sustracción, en el caso de los monitores los coleres se crean por adición utilizando para ello al Rojo, Verde y Azul como colores primarios.
        Aparte de lo que te explican pod y Maq77, he visto una web en la que puedes "jugar" con diversos valores aquí: RGB Color Codes Chart

        Saludos.
        Última edición por Alriga; 28/02/2018, 16:14:57.
        "Das ist nicht nur nicht richtig, es ist nicht einmal falsch! "

        Comentario


        • #5
          Re: Espacio de color RGB: fórmula

          Muchas gracias POD.
          Pero mi duda es la razón por la que es el parámetro R el que se multiplica por 65536 y no el B, por ejemplo. ¿Da igual o hay alguna razón? Es para una investigación y necesito justificar la ecuación.

          Un saludo

          Comentario


          • #6
            Re: Espacio de color RGB: fórmula

            Escrito por SELENA Ver mensaje
            Pero mi duda es la razón por la que es el parámetro R el que se multiplica por 65536 y no el B, por ejemplo. ¿Da igual o hay alguna razón?
            La razón es porque al sistema históricamente se le llama arbitrariamente RGB con la R al principio. Si se le hubiese llamado GRB sería la G la que se multiplica por y si inicialmente le hubiesen por ejemplo llamado BRG sería la B.

            Un posible motivo para que lo bautizasen en el orden RGB es que lo ordenasen de menor a mayor frecuencia: la frecuencia electromagnética del rojo es inferior a la del verde que es inferior a la del azul. Pero no deja de ser una arbitrariedad, si lo hubiesen ordenado por longitud de onda creciente se llamaría BGR

            Saludos.
            Última edición por Alriga; 01/03/2018, 15:56:07. Motivo: Ortografía
            "Das ist nicht nur nicht richtig, es ist nicht einmal falsch! "

            Comentario


            • #7
              Re: Espacio de color RGB: fórmula

              Escrito por SELENA Ver mensaje
              Hola buenas

              Estoy trabajando con valores de RGB y el programa GNUPLOt. Dicho programa utiliza la fórmula RGB (R,G,B) = 256*256*int(R) + 256*int(G) + int(B).
              ¿Alguien podría decirme si conoce el origen de esta fórmula? Es decir, ¿por qué es así? ¿Por qué es R el que se multiplica por 65536 y no B?
              Otra cosa que puedes hacer para salir de dudas es utilizar el programa GNUPLOT, y aplicar una pequeña modificación de la fórmula para experimentar que resultado obtienes, por ejemplo, pudieras utilizar:

              RGB (R,G,B) = 256*int(R) + 256*256*int(G) + int(B)

              ó

              RGB (R,G,B) = int(R) + 256*int(G) + 256*256*int(B)

              Saludos.

              Comentario

              Contenido relacionado

              Colapsar

              Trabajando...
              X