matlab使用缩放颜图像-imagesc

时间:2022-11-30 11:23:27

✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。

????个人主页:算法工程师的学习日志

imagesc函数基本用法:

imagesc(C) 将数组 C 中的数据显示为一个图像,该图像使用颜色图中的全部颜色。C 的每个元素指定图像的一个像素的颜色。生成的图像是一个 m×n 像素网格,其中 m 和 n 分别是 C 中的行数和列数。这些元素的行索引和列索引确定了对应像素的中心。

imagesc(x,y,C) 指定图像位置。使用 x 和 y 可指定与 C(1,1) 和 C(m,n) 对应的边角的位置。要同时指定两个边角,请将 x 和 y 设置为二元素向量。要指定第一个边角并让 imagesc 确定另一个,请将 x 和 y 设为标量值。图像将根据需要进行拉伸和定向。

imagesc是将三维数据绘制到2-D曲面上。这个函数最初用于图像数据,是绘制2-D矩阵的一个很好的工具。imagesc与图像函数的不同之处在于,数据会自动缩放以适应色彩图的范围。这个特性使得用imagesc表示矩阵比用image容易得多。我们建议使用imagesc从2-D矩阵绘制数据。

下面的示例展示了如何使用imagesc绘制矩阵以及如何更改颜色轴限制。这个代码创建了一个铜方轴,从视觉上看,几乎具有三维效果。

colormap copper
figure
imagesc(spiral(100))
axis square
axis off


第一个图显示了上述代码的结果。螺旋函数创建了一个二维矩阵,沿着螺旋路径从中心的1增加到边缘的n^2。imagesc绘制矩阵,使数据均匀地分布在色彩图中。

第二个图是通过输入以下命令创建的:

set(gca,'Clim',[0 3000])

matlab使用缩放颜图像-imagesc

现在,图的中心显示了更多的细节,但当矩阵值为3000或更高时,图就饱和了。

matlab使用缩放颜图像-imagesc

第三个图显示了将颜色轴限制设置为3000到10000的结果。图*的低值被设置为色彩图的最低值,而图的边缘比原始图显示了更多的细节。色度图已经被设置为与从3000到10000的值相对应,所以在更小的值范围内会有更多的颜色,产生更多的细节。

imagesc是一个有用的函数,可以用来显示2-D数据。上面的例子关闭了坐标轴,但通常情况下,坐标轴将从1开始标记,一直到该维度中的数据点数。要设置x和y坐标,可以使用以下命令:

matlab使用缩放颜图像-imagesc

imagesc(10:10:1000,1:0.1:10,spiral(100))

这将x坐标设置为[10,20,30,…,990,1000],y坐标设置为[1,1.1,1.2,…,9.9,10]。这并不影响图的大小,而只是改变了坐标轴上的标签。imagesc很容易使用,在从二维矩阵绘制数据时,它具有很大的通用性。