2011-06-26 21 views
4

我有一个10乘10矩阵(按名称数据)。我试图生成一个图像:如何从矩阵(使用浮点条目)生成图像

figure; 
(data); 
colormap(gray); 

保存的图像是560 * 420。我怎样才能生成一个10乘10的图像?

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

MATLAB中是否有任何其他函数直接从浮动值转换(不转换为RGB,0 < =值< = 1)以生成图像?

回答

2

可能是你能找到“图像处理matlab工具箱”相关"image"功能,你想要做

什么正如你可以看到通过运行简单的像

image(C) 
则可以说明矩阵C,

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

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

its参数显示如何it作品,

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

我相信学习MATLAB最好的办法是要通过它的帮助,并继其“入门”

+0

我对接下来的时间,你可以在时间安排您的问题,并要求1,那么回答将是其他用户更容易 – user702846

5

我敢肯定,这已被问过,但我不能找到重复。您可以使用imagesc函数将矩阵显示为图像。所以你上面的代码应改为:

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

颜色缩放比例由caxis,这需要参数作为caxis([cmin, cmax])控制。从文档:

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

因此,在这种情况下,最低值(如果您没有设置一个caxis)将被映射到灰色颜色表(白色)和最高值最低的颜色将设置为黑色。要查看设置灰度色彩映射时使用的RGB值,请将其分配给一个变量并查看这些值(或绘制它)。

gray=colormap('gray'); 

此外,通过文档阅读colormap