📜  使用 MATLAB 绘制科威特国旗

📅  最后修改于: 2022-05-13 01:55:49.038000             🧑  作者: Mango

使用 MATLAB 绘制科威特国旗

彩色图像可以表示为 3 阶矩阵。一阶用于行,二阶用于列,三阶用于指定相应像素的颜色。这里我们使用 RGB 颜色格式,所以三阶将分别取 Red、Green 和 Blue 的 3 个值。行和列的值取决于图像的大小。

先决条件:RGB图像表示

方法 :

  • 制作一个尺寸为 300X500X3 的 3 阶零矩阵。 300 表示行的像素数,500 表示列的像素数,3 表示 RGB 格式的颜色编码。图像从完全黑色开始,因为所有像素的颜色代码都是 (0, 0, 0)。
  • 将第 1 到 100 行之间以及第 101 到 500 列之间的水平条涂成绿色。科威特国旗中绿色的颜色代码是 (0, 122, 61)。
  • 将第 101 到 200 行之间以及第 101 到 500 列之间的水平条涂成白色。白色的颜色代码是 (255, 255, 255)。
  • 将第 201 到 300 行之间以及第 101 到 500 列之间的水平条涂成红色。科威特国旗中红色的颜色代码是 (206, 17, 38)
  • 在这一点上,我们有一个看起来像这样的图像:

    现在我们必须绘制 2 个三角形。
  • 对于上面的绿色三角形。在行数从 1 到 100、列数从 1 到 100 的矩阵中,将右上角的三角形涂成绿色。
  • 对于下方的红色三角形。在行数从 201 到 300、列数从 1 到 100 的矩阵中,将右下三角形涂成红色。

下面是实现:

% 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);

输出 :