如何从矩阵生成图像(带浮点条目)

时间:2011-06-26 23:03:49

标签: matlab

我有一个10乘10的矩阵(数据名称)。我正在尝试生成图像:

figure; 
(data);
colormap(gray);

保存的图像为560 * 420。如何生成10 x 10的图像?

我也想知道它是如何工作的。它是否首先将矩阵的-ve条目设置为0,条目> 1设置为1,然后将所有条目乘以255(如imwrite())?

MATLAB中是否还有其他函数可以直接从浮点值转换(不将其转换为RGB,0< = value< = 1)来生成图像?

2 个答案:

答案 0 :(得分:5)

我确定以前曾经问过这个问题,但我找不到复制品。您可以使用imagesc功能将矩阵显示为图像。所以上面的代码应该是:

figure; 
imagesc(data);
colormap(gray);

颜色缩放由caxis控制,其参数为caxis([cmin, cmax])。来自文档:

  

caxis([cmin cmax])将颜色限制设置为指定的最小值和最大值。小于cmin或大于cmax的数据值分别映射到cmincmaxcmincmax之间的值线性映射到当前的色彩映射。

因此,在这种情况下,最低值(如果未设置caxis)将映射到灰色色彩图(白色)中的最低颜色,最高值将设置为黑色。要查看在设置灰度色彩图时使用的RGB值,请将其指定给变量并查看值(或绘制它)。

gray=colormap('gray');

另外,请仔细阅读colormap

上的文档

答案 1 :(得分:2)

您可以从“Image Processing Matlab工具箱”找到与您想要做的相关的"image"功能

如您所见,您可以通过简单地运行

来说明矩阵C.
image(C)

关于你第二个问题,重新调整图片,有

imresize(C)
B = imresize(A, [numrows numcols])

its个参数显示it如何工作,

关于它描绘任何矩阵的方式,Image可以是索引或真彩色。索引图像将颜色作为索引数组存储到图形颜色图中。相反,每个像素的颜色值直接存储为RGB三元组(R,G,B)。因此,任何图像都可以称为(m×by-by-3)阵列。该数组由三个m×by-n矩阵组成(代表红色,绿色和蓝色平面)。

我相信学习matlab的最佳方法是通过它的帮助并遵循“入门”