我有一个10乘10的矩阵(数据名称)。我正在尝试生成图像:
figure;
(data);
colormap(gray);
保存的图像为560 * 420。如何生成10 x 10的图像?
我也想知道它是如何工作的。它是否首先将矩阵的-ve条目设置为0
,条目> 1设置为1
,然后将所有条目乘以255(如imwrite()
)?
MATLAB中是否还有其他函数可以直接从浮点值转换(不将其转换为RGB,0< = value< = 1)来生成图像?
答案 0 :(得分:5)
我确定以前曾经问过这个问题,但我找不到复制品。您可以使用imagesc
功能将矩阵显示为图像。所以上面的代码应该是:
figure;
imagesc(data);
colormap(gray);
颜色缩放由caxis
控制,其参数为caxis([cmin, cmax])
。来自文档:
caxis([cmin cmax])
将颜色限制设置为指定的最小值和最大值。小于cmin
或大于cmax
的数据值分别映射到cmin
和cmax
。cmin
和cmax
之间的值线性映射到当前的色彩映射。
因此,在这种情况下,最低值(如果未设置caxis
)将映射到灰色色彩图(白色)中的最低颜色,最高值将设置为黑色。要查看在设置灰度色彩图时使用的RGB值,请将其指定给变量并查看值(或绘制它)。
gray=colormap('gray');
另外,请仔细阅读colormap
答案 1 :(得分:2)
您可以从“Image Processing Matlab工具箱”找到与您想要做的相关的"image"功能
如您所见,您可以通过简单地运行
来说明矩阵C.image(C)
关于你第二个问题,重新调整图片,有
imresize(C)
B = imresize(A, [numrows numcols])
关于它描绘任何矩阵的方式,Image可以是索引或真彩色。索引图像将颜色作为索引数组存储到图形颜色图中。相反,每个像素的颜色值直接存储为RGB三元组(R,G,B)。因此,任何图像都可以称为(m×by-by-3)阵列。该数组由三个m×by-n矩阵组成(代表红色,绿色和蓝色平面)。
我相信学习matlab的最佳方法是通过它的帮助并遵循“入门”