Dibuja la bandera de Seychelles usando MATLAB

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 en función del tamaño de la imagen.

Requisito previo: representación de imagen RGB

Acercarse:

  • Haga una array de 3 orden cero de dimensiones 300X600X3. 300 indica el número de píxeles de las filas, 600 indica el número de píxeles de las columnas y 3 indica el código de colores en formato RGB.
  • Colorea toda la imagen de azul accediendo a cada píxel y cambiando su valor RGB. El código de color RGB de azul en la bandera de Seychelles es (0, 63, 135).

    Después de este paso, la imagen se verá así :

  • La parte amarilla de la bandera forma un ángulo de 57 grados con el eje X, por lo que su pendiente será de 1,55. Accede a cada píxel de la imagen y comprueba si la pendiente del píxel con el origen es menor o igual a 1,55, si es cierto cambia su valor RGB por el de amarillo. El código de color RGB de amarillo en la bandera de Seychelles es (252, 216, 86).

    Después de este paso, la imagen se verá así:

  • La parte roja de la bandera forma un ángulo de 37 grados con el eje X, por lo que su pendiente será de 0,75. Acceda a cada píxel de la imagen y verifique si la pendiente del píxel con el origen es menor o igual a 0.75, si es cierto, cambie su valor RGB al de rojo. El código de color RGB de rojo en la bandera de Seychelles es (214, 40, 40).

    Después de este paso, la imagen se verá así:

  • La parte blanca de la bandera forma un ángulo de 20 grados con el eje X, por lo que su pendiente será de 0,36. Accede a cada píxel de la imagen y comprueba si la pendiente del píxel con el origen es menor o igual a 0,36, si es cierto cambia su valor RGB por el de blanco. El código de color RGB del blanco es (255, 255, 255).

    Después de este paso, la imagen se verá así:

  • La parte verde de la bandera forma un ángulo de 9 grados con el eje X, por lo que su pendiente será de 0,15. Accede a cada píxel de la imagen y comprueba si la pendiente del píxel con el origen es menor o igual a 0,15, si es cierto entonces cambia su valor RGB por el de verde. El código de color RGB de verde en la bandera de Seychelles es (0, 122, 61).

    Después de este paso, la imagen se verá así:

Implementación:

% MATLAB code to draw Seychelles flag
  
% initialising a zero matrix of 300X600X3 
im=uint8(zeros(300, 600, 3))+255;
  
% blue
for i = 1:300
    for j = 1:600
        im(i, j, 1) = 0;
        im(i, j, 2) = 63;
        im(i, j, 3) = 135;
    end 
end
  
% yellow
for i = 1 : 300
    for j = 1 : 600
        m = round(abs((i-300)/(j-1)), 2);
        if m <= 1.55
            im(i, j, 1) = 252;
            im(i, j, 2) = 216;
            im(i, j, 3) = 86;
        end
    end 
end
  
% red
for i = 1 : 300
    for j = 1 : 600
        m = round(abs((i-300)/(j-1)), 2);
        if m <= 0.75
            im(i, j, 1) = 214;
            im(i, j, 2) = 40;
            im(i, j, 3) = 40;
        end
    end 
end
  
% white
for i = 1 : 300
    for j = 1 : 600
        m = round(abs((i-300)/(j-1)), 2);
        if m <= 0.36
            im(i, j, 1) = 255;
            im(i, j, 2) = 255;
            im(i, j, 3) = 255;
        end
    end 
end
  
% green
for i = 1 : 300
    for j = 1 : 600
        m = round(abs((i-300)/(j-1)), 2);
        if m <= 0.15
            im(i, j, 1) = 0;
            im(i, j, 2) = 122;
            im(i, j, 3) = 61;
        end
    end 
end
  
% displaying the matrix as an image
figure, imshow(im);

Producción :

Publicación traducida automáticamente

Artículo escrito por Yash_R 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 *