Una imagen coloreada se puede representar como una array de 3 orden. El primer orden es para las filas, el segundo orden es para las columnas y el tercer orden es para especificar el color del píxel correspondiente. Aquí usamos el formato de color RGB, por lo que el tercer orden tomará 3 valores de Rojo, Verde y Azul respectivamente. Los valores de las filas y columnas dependen del tamaño de la imagen.
Requisito previo: representación de imagen RGB
Acercarse :
- Haga una array de orden cero de 3 dimensiones 300X500X3. 300 indica el número de píxeles de las filas, 500 indica el número de píxeles de las columnas y 3 indica el código de colores en formato RGB. La imagen comienza completamente negra porque para todos los píxeles el código de color es (0, 0, 0).
- Pinte la barra horizontal entre las filas 1 a 100 y entre las columnas 101 a 500 de color verde. El código de color verde en la bandera de Kuwait es (0, 122, 61).
- Pinte la barra horizontal entre las filas 101 a 200 y entre las columnas 101 a 500 de blanco. El código de color del blanco es (255, 255, 255).
- Pinte de rojo la barra horizontal entre las filas 201 a 300 y entre las columnas 101 a 500. El código de color rojo en la bandera de Kuwait es (206, 17, 38)
- En este punto tenemos una imagen que se ve así:
Ahora tenemos que dibujar 2 triángulos. - Para el triángulo verde superior. En la array con filas del 1 al 100 y columnas del 1 al 100, pinta el triángulo superior derecho de color verde.
- Para el triángulo rojo inferior. En la array con filas del 201 al 300 y columnas del 1 al 100, pinta el triángulo inferior derecho de rojo.
A continuación se muestra la implementación:
% MATLAB code to draw Kuwait flag % initialising a zero matrix of 300X500X3 I=uint8(zeros(300, 500, 3)); % green horizontal bar I(1:100, 101:500, 1)=0; I(1:100, 101:500, 2)=122; I(1:100, 101:500, 3)=61; % white horizontal bar I(101:200, 101:500, :)=255; %red bar I(201:300, 101:500, 1)=206; I(201:300, 101:500, 2)=17; I(201:300, 101:500, 3)=38; % green upper triangle for i = 1:100 for j=1:100 if i<=j I(i, j, 1)=0; I(i, j, 2)=122; I(i, j, 3)=61; end end end % red lower triangle for i = 201:300 for j = 1:100 if (i-200)+j>=101 I(i, j, 1)=206; I(i, j, 2)=17; I(i, j, 3)=38; end end end % displaying the matrix as image figure, imshow(I);
Producción :