Dibuja la bandera de Sudán usando MATLAB

En el procesamiento de imágenes digitales, una imagen en color se representa en una array tridimensional. La imagen se puede representar en varios modelos de color, como el modelo RGB (rojo, verde, azul), el modelo HSV (tono, saturación, valor), el modelo YIQ (cuadratura en fase de luminancia), el modelo CMYK (cian, magenta, amarillo, negro) . Generalmente, una imagen se representa en el modelo RGB. El primer canal de la array es el Rojo, el segundo canal es el Verde y el tercer canal es el Azul.

Enfoque para dibujar la bandera de Sudán:

  • Cree una array cero de 300X600X3.300 es el número de filas, 600 es el número de columnas y 3 representa el canal de color RGB. Llene la array con (255, 255, 255). 255 representa un píxel blanco y 0 representa un píxel negro.
    img(:, :, :)=255
  • Rellene la array con color carmesí (210, 16, 42) entre filas del 1 al 100 y entre columnas del 151:600.
  • Rellene la array con negro (0, 0, 0) entre filas de 200 a 300 y entre columnas de 151:600.
  • Después de estas operaciones, nuestra imagen queda así
  • Ahora, tenemos que dibujar un triángulo superior y un triángulo inferior.
  • Para el triángulo inferior, desde la fila 1 a la 150 y la columna 1 a la 150, complete la array con color verde (0, 114, 14)
  • De manera similar, para el triángulo superior, desde la fila 150 a la 300 y la columna 1 a la 150, llene la array con color verde (0, 114, 14)

La implementación se da a continuación:

% MATLAB code to draw Sudan flag
  
% initialising a zero matrix of 300X600X3
img=uint8(zeros(300, 600, 3));
img(:, :, :)=255;
%Red Color
img(1:100, 151:600, 1)=210;
img(1:100, 151:600, 2)=16;
img(1:100, 151:600, 3)=42;
%black Color 
img(200:300, 150:600, :)=0;
% Lower Triangle
for i=1:150
    for j=1:150
        if(j<i)
            img(i, j, 1)=0;
            img(i, j, 2)=114;
            img(i, j, 3)=41;
        elseif(i<=100)
            img(i, j, 1)=210;
            img(i, j, 2)=16;
            img(i, j, 3)=42;
              
        end
    end
end
% Upper Triangle
for i=150:300
    for j=1:150
        if(i+j<=300)
            img(i, j, 1)=0;
            img(i, j, 2)=114;
            img(i, j, 3)=41;
  
        elseif(i>=200)
            img(i, j, :)=0;            
        end
    end
end
  
% displaying the matrix as image
figure, imshow(img);

Producción :

Publicación traducida automáticamente

Artículo escrito por debanjanchattopadhyay y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *