Está en la página 1de 4

Generación de Imagen de Colores con RGB en Matlab

Juan Nicolas Vargas Código N:° 20052005091

Edward Johannes Uribe Codigo N:° 20052005086

Julian Ignacio Buitrago Codigo N:° 20052005014

16 de febrero de 2011

Resumen
En este informe se llevara a cabo una práctica tomando como herramienta Matlab, en la cual se detallara como generar
sistemáticamente una imagen que contenga una gama de dieciséis millones de colores, o sea todos los existentes en el
espectro de visión humana. Todo esto por medio de la combinación del rojo, el verde y el azul, lo que se llama
representación RGB (Red, Green, Blue).

Palabras clave: colores, RGB, Matlab.

 Estudiante de la materia Procesamiento Digital de Señales de la Facultad de Ingeniería de la Universidad Distrital


Francisco José de Caldas E-mail: jnvargasa@estudiante.udistrital.edu.co
im1(n,m,3)=z;
1. Introducción
Se está trabajando el tema de procesamiento digital de En las cuales se presenta primero el nombre del tipo de datos
(im1), que es una matriz en este caso, en lo siguiente se ve
imágenes, por lo cual los ejercicios que se llevaran a
un vector de tres posiciones, en las primeras dos se dan las
cabo a lo largo de la materia serán con respecto a lo coordenadas de los pixeles, donde la primera es el numero de
anteriormente mencionado. La herramienta a usar en fila, o sea los pixeles de arriba hacia abajo y el segundo da
este problema será Matlab, debido a su facilidad y los valores de izquierda a derecha, el tercer valor nos dice la
accesibilidad a la hora del manejo de imágenes. gama del pixel ‘Rojo’ para ‘1’, ‘Verde’ para 2 y ‘Azul’ para
3.
El problema propuesto en la materia es acerca de la Frente a estas coordenadas se encuentra la intensidad de cada
generación de una imagen que contenga dieciséis tono fundamental, los cuales van de 0 – 255, para cada uno.
millones de colores diferentes.
La siguiente línea de código

2. Formulación del Problema figure, imshow(im1,…


'initialmagnification','fit');
Construir una imagen sistemáticamente que contenga
todos los colores, que para el caso son dieciséis millones Se utilizo para no tener problemas al momento de visualizar
(16millones), por medio del software Matlab. El primer una imagen tan grande.
problema que se presenta es cuál va a ser la forma en
que se van a presentar los datos o en este caso colores. Por medio de algoritmos de tipo condicional y cíclicos, como
son ‘if’ y ‘for’ nos podemos mover atraves de la matriz y
Los colores se presentan en pixeles, los cuales son cambiar las intensidades de cada color y mezclarlas.
elementos básicos de una imagen, estos pixeles tomaran
diferentes valores dando como resultado una imagen, es El algoritmo ‘for’ se uso en la variable ‘m’ y ‘n’, para
necesario que sean 16 millones de pixeles de diferentes movernos a lo largo de la matriz, anidando el ‘for’ aplicado a
colores, para generar en cada pixel un color diferente. ‘m’ en el ‘for’ aplicado a ‘n’. Esto para mantener quieta la
variable ‘m’ mientras variamos ‘n’, de esta forma nos
Lo siguiente fue como organizar los pixeles, la mejor movemos de arriba hacia abajo, 4096 veces y luego variamos
opción que se puede ver es la utilización de matrices, ‘m’ moviéndonos de izquierda a derecha.
gracias a su facilidad de manipulación matemática, en
ellas y entre ellas. Se uso ‘if’ en las variable ‘x’, ‘y’ y ‘z’ , para variar las
intensidades de rojo, verde y azul dando un total de
Usando la siguiente línea de código combinaciones de 16 millones de tonos.

im1=uint8(zeros(4096)); El siguiente es el código completo

Se genera una matriz de 4096 x 4096, en color negro debido p=256;


a que todos sus elementos están en ceros, y la gama de q=16;
colores va de ‘0’ a ‘1’ donde cero es negro y uno es blanco y alto=p*q;
en medio esta toda la gama de grises.
p1=5;
Ahora teniendo la matriz lo que falta es incorporar a cada q1=10;
pixel un color diferente, para esto se hizo uso de la
siguientes tres líneas de código a1=ones(1,alto);
a=a1';
im1(n,m,1)=x; red=(1:p*q);
im1(n,m,2)=y;

 Estudiante de la materia Procesamiento Digital de Señales de la Facultad de Ingeniería de la Universidad Distrital


Francisco José de Caldas E-mail: jnvargasa@estudiante.udistrital.edu.co
g1=a*a1;
g1=0*g1;
3. Resultados
n=0;
for j=0:p*q-1;
modulo=mod(j,p); 500
if modulo==0
n=0; 1000

else
n=n+1; 1500

end 2000
red(j+1)=n;
end 2500

r=a*red;
3000

b=r'; 3500

figure,imshow(b,[]);
figure,imshow(r,[]); 4000

500 1000 1500 2000 2500 3000 3500 4000

w=ones(1,16);
alto1=w';
m=0; 500

for h=1:p*q;
modulo3=mod(h,p); 1000

1500

for k=1:p*q;
modulo2=mod(k,p); 2000

g(h,k)=m; 2500
if modulo2==0
m=m+1; 3000

end
3500

end 4000

m=m-q; 500 1000 1500 2000 2500 3000 3500 4000

if modulo3==0
m=m+q;
end
500
end
1000

figure, imshow(g,[]);
im1(:,:,1)=r; 1500

im1(:,:,2)=g; 2000

im1(:,:,3)=b;
im1=uint8(im1); 2500

figure,imshow(im1,[]);
3000

3500

4000

500 1000 1500 2000 2500 3000 3500 4000

 Estudiante de la materia Procesamiento Digital de Señales de la Facultad de Ingeniería de la Universidad Distrital


Francisco José de Caldas E-mail: jnvargasa@estudiante.udistrital.edu.co
500

1000

1500

2000

2500

3000

3500

4000

500 1000 1500 2000 2500 3000 3500 4000

Imagen # 1 dieciséis millones de colores generados en


Matlab.

4. Discusión
A lo largo de este trabajo se puede observar la facilidad de
usar herramientas virtuales como lo es Matlab, se puede
entender desde la parte más esencial como está compuesta
una imagen, para luego poder manipularla.

5. Conclusiones
La utilización de un diagrama de flujo previo a llevarse a
cabo la parte de programación es fundamental al momento
de trabajar en Matlab así como en cualquier otro programa.

Las imágenes están compuestas por pixeles y estos a su vez


pueden ser manipulados de la manera que queramos con
herramientas como Matlab.

Matlab ofrece infinidad de ayudas para llevar a cabo


variedad de tareas diversas aparte del procesamiento digital
de imágenes.

 Estudiante de la materia Procesamiento Digital de Señales de la Facultad de Ingeniería de la Universidad Distrital


Francisco José de Caldas E-mail: jnvargasa@estudiante.udistrital.edu.co

También podría gustarte