从像素矩阵绘制图片

Drawing picture from pixels matrix

我想从包含颜色值的矩阵中绘制图像。它看起来像这样:

TEMP = zeros(100,100);

for i=1:100
    for j=1:100

        if (...)
            TEMP(i,j)=0;
        elseif (...)
            TEMP(i,j)=56;
        elseif (...)
            TEMP(i,j)=32;
        end
    end
end

image(TEMP)

但它只使用这种颜色绘制:

这些颜色的值从 0 到 66,步长=2

如何使用矩阵绘制 RGB 颜色?特别是我需要灰色

将您的 colormap 更改为 gray 以获得 BNW 图像:

TEMP = rand(100)*255;
image(TEMP)
colormap gray

如果颜色反转,请使用 image(-TEMP)

二维数组不能自己定义颜色,需要关联一个颜色图。您的默认颜色图是 jet(从蓝色到红色),例如您可以将其更改为 gray,但是对于这种显示,您将始终只使用颜色的子集。

如果您想使用任何 RGB 颜色,那么您需要一个 RGB 数组,一个 n×m×3 维数组。子数组 A(:,:,1) 将编码红色,A(:,:,2) 编码绿色,A(:,:,3) 编码蓝色。对于这种数组,命令::

image(A);

应该给你一个真正的 RGB 显示。