使用 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);
输出 :