Antes de comenzar a desarrollar programas para procesar imagenes , debemos saber cómo se representan las imagenes dentro de nuestro ordenador.
Como ya habremos oído en multidud de ocasiones los ordenadores solo entienden ceros y unos, o lo que es lo mismo números, por tanto podemos decir como primera aproximación que para un ordenador una imagen es un conjunto de números, ordenados en forma de matriz bidimensional. Coordenada x y coordenada y.
Esta matriz almacena en cada una de sus posiciones un valor que representa el color del punto al que referencia. Si la imagen está en escala de grises, cada entrada de la matriz representa su valor de luminancia, la intensidad de gris del punto. Un valor 0 representa el color negro, mientras que un valor 255 representa el color blanco. De esto último se deduce que en cada entrada de la matriz se almacena un byte lo que nos proporciona los mencionados 256 valores los cuales para una imagen en escala de grises son más que suficientes.
Si la imagen es en color, tenemos dos formas de almacenarla en la matriz:
TRUE-COLOR: En este esquema para cada punto de la imagen se almacenan las tres componenetes de color que lo definen. Para una profundidad de color de 8 bits, cada punto de la imagen se representará con 3 bytes o, lo que es lo mismo 24 bits de color. Existen otros esquemas tales como HiColor en el que cada punto ocupa 16 bits o los nuevos formatos de color de 32 bits en los cuales el byte adicional puede almacenar información de profundidad, para sistema 3D o el llamado canal alpha que representa la transparencia de ese punto y es utilidado para combinar distintas fuentes de imagen.
PALETA DE COLOR: Con este esquema, se crea una tabla en la que se almacenan los colores que aparecen en la imagen, en forma de componentes R, G y B. Esta tabla recibe el nombre de paleta de color. La matriz de la imagen almacena el índice de la entrada en la paleta que contiene el color del punto que se esté referenciando. Así si la entrada 25 de la paleta contiene los valores (255,0,0) , todos los puntos rojos (rojo totalmente saturado) de la imagen se referenciarán con el valor 25.
Este esquema resulta interesante siempre que el número de entradas de la paleta, es decir, el tamaño del índice en bytes, sea menor que el tamaño en bytes de la definición de color. Generalmente tenemos paletas de 256 colores con lo cual con un solo byte podemos direccionar todas sus entradas, y cada entrada de la paleta almacena 3 bytes, uno por cada componente de color. Este esquema además nos ahorra memoria, pues, por ejemplo, cuando antes nos hacía falta 3 bytes por punto, ahora llega uno más lo que ocupe la paleta.
El formato de paleta de color es útil cuando se trata solamente
de representar imagenes, puesto que de cara a su procesamiento es necesario
convertirla a formato true-color, lo cual se hace de forma inmediata sustituyendo
cada índice de la matriz de la imagen, por el contenido de la paleta
apropiado. La razón por la que no se puede procesar las imagen con
un formato de paleta de color, es que ,en general, cuando se aplica algún
tipo de procesado a la imagen se generan nuevos colores que no están
definidos en la paleta, con lo cual no pueden ser representados. Además,
el hecho de tener una paleta, hace que los puntos no sean independientes,
es decir, todos los puntos con el valor 25 tienen el mismo color. Si tuviésemos
que modificar uno solo de ellos, tendríamos que generar una nueva
entrada en la paleta para ese color, o localizar ese color entre los ya
definidos en la paleta.
A continuación se describirá de forma general como funciona el hardware de video, para introducir algunos conceptos nuevos.
![]() |
![]() |