📜  使用Matlab绘制瑞士国旗

📅  最后修改于: 2021-04-16 09:20:04             🧑  作者: Mango

彩色图像可以表示为3阶矩阵。第一个顺序用于行,第二个顺序用于列,第三个顺序用于指定相应像素的颜色。在这里,我们使用RGB颜色格式,因此三阶将分别采用红色,绿色和蓝色的3个值。行和列的值取决于图像的大小。

RGB图像表示:
RGB颜色模型是一种加法颜色模型,其中以各种方式将红,绿和蓝光加在一起以重现各种颜色。该模型的名称来自三种附加原色(红色,绿色和蓝色)的缩写。

然后考虑一个RGB图像阵列“ I”,

  • I(:,:,1)代表RGB图像的红色平面
  • I(:,:,2)代表RGB图像的绿色平面
  • I(:,:,3)代表RGB图像的蓝色平面

方法:

  • 制作尺寸为30 X 50 X 3的3阶零矩阵。30表示行的像素数,50表示列的像素数,3表示RGB格式的颜色编码。
  • 将整个图像涂成红色。红色的RGB代码是(255,0,0)
  • 制作水平白条。白色的RGB代码是(255,255,255)
  • 制作垂直白条。

下面是实现:

% matlab code to draw Switzerland flag 
    
I = zeros(30, 50, 3);
% here image is of class ‘uint8’, the range of values
% that each colour component can have is [0 – 255]  
I = uint8(I);  
%painting the whole image red
I(:, :, 1) = 255;  
    
%white bar 
I(5:25, 22:28, 1:3) = 255; 
    
%white column 
I(12:18, 10:40, 1:3) = 255; 
    
% show the image formed
imshow(I);

输出: