Matlab中imagesc用法

来源:https://ww2.mathworks.cn/help/matlab/ref/imagesc.html?searchHighlight=imagesc&s_tid=doc_srchtitle

imagesc

显示使用经过标度映射的颜色的图像

全页折叠

语法

imagesc(C)

imagesc(x,y,C)

imagesc(‘CData‘,C)

imagesc(‘XData‘,x,‘YData‘,y,‘CData‘,C)

imagesc(___,Name,Value)

imagesc(___,clims)

imagesc(ax,___)

im = imagesc(___)

说明

示例

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

示例

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

imagesc(‘CData‘,C) 将图像添加到当前坐标区中而不替换现有绘图。此语法是 imagesc(C) 的低级版本。有关详细信息,请参阅高级与低级版本

imagesc(‘XData‘,x,‘YData‘,y,‘CData‘,C) 指定图像位置。此语法是 imagesc(x,y,C) 的低级版本。

imagesc(___,Name,Value) 使用一个或多个名称-值对组参数指定图像属性。您可以在上述语法中的任何输入参数组合后指定名称-值对组参数。如需图像属性和说明的列表,请参阅 Image 属性

示例

imagesc(___,clims) 指定映射到颜色图的第一个和最后一个元素的数据值。将 clims 指定为 [cmin cmax] 形式的二元素向量,其中小于或等于 cmin 的值映射到颜色图中的第一种颜色,大于或等于 cmax 的值映射到颜色图中的最后一种颜色。在名称-值对组参数后指定 clims

imagesc(ax,___) 将在由 ax 指定的坐标区中而不是当前坐标区 (gca) 中创建图像。指定坐标区作为第一个输入参数。

示例

im = imagesc(___) 返回创建的 Image 对象。使用 im 在创建图像后设置图像的属性。您可以使用先前语法中的任意输入参数组合指定此输出。

示例

全部折叠

显示矩阵数据的图像

尝试此示例

View MATLAB Command

创建矩阵 C。显示 C 中数据的图像。向图添加颜色栏以显示当前颜色图。默认情况下,imagesc 色阶颜色范围以便图像使用颜色图中的所有颜色,其中 C 中的最小值映射到颜色图中的第一种颜色,最大值映射到最后一种颜色。

C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
imagesc(C)
colorbar

控制图像位置

尝试此示例

View MATLAB Command

放置图像,使其位于 x 轴上的 5 和 8 之间及 y 轴上的 3 和 6 之间。

x = [5 8];
y = [3 6];
C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
imagesc(x,y,C)

请注意,对应于 C(1,1) 的像素在点 (5,3) 上居中显示。对应于 C(3,4) 的像素在点 (8,6) 上居中显示。imagesc 在这两个点之间确定图像其余部分的位置和方向。

控制数据值到颜色图的颜色映射

尝试此示例

View MATLAB Command

C 创建为数据值的数组。创建 C 的图像并设置颜色范围,使 4 或更小的值映射到颜色图中的第一种颜色,18 或更大的值映射到颜色图中的最后一种颜色。显示颜色栏以说明数据值如何映入颜色图。

C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
clims = [4 18];
imagesc(C,clims)
colorbar

创建后修改图像

尝试此示例

View MATLAB Command

创建一个图像并返回图像对象 im。然后,通过设置图像对象的 AlphaData 属性使图像半透明。

C = [1 2 3; 4 5 6; 7 8 9];
im = imagesc(C);

im.AlphaData = .5;

向三维视图中的坐标区添加图像

尝试此示例

View MATLAB Command

创建一个曲面图。然后,将一个图像添加在曲面下。imagesc 在 xy 平面中显示该图像。

Z = 10 + peaks;
surf(Z)
hold on
imagesc(Z)

输入参数

全部折叠

C - 图像颜色数据
向量或矩阵

图像颜色数据,指定为向量或矩阵。C 的每个元素定义图像一个像素的颜色。C 的元素映射到相关联的坐标区的颜色图中的颜色。C 中的最小值映射到颜色图中的第一种颜色,最大值映射到最后一种颜色。NaN 元素的行为未定义。

注意

如果您将 C 指定为 m×n×3 数组,则 imagesc 函数将图像解释为真彩色 (RGB) 图像。imagesc 不重新缩放真彩色图像的像素值。在调用 imagesc 之前,请使用 rescale 函数缩放真彩色像素值。

要改用 imagesc 函数的低级版本,请将 CData 属性设为名称-值对组。例如,imagesc(‘CData‘,C)

在数据类型间转换

要将灰度图像数据从整数类型转换为 double 类型,请增加 1。例如,如果 X8uint8 类型的灰度图像数据,则使用以下语法将其转换为 double 类型:

X64 = double(X8) + 1;

要将灰度图像数据从 double 类型转换为整数类型,请减去 1 并使用 round 确保所有值都为整数。例如,如果 X64double 类型的灰度图像数据,则使用以下语法将其转换为 uint8

X8 = uint8(round(X64 - 1));

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

x - 沿着 x 轴放置
[1 size(C,2)] (默认) | 二元素向量 | 标量

沿着 x 轴放置,以下列形式之一指定:

  • 二元素向量 - 将第一个元素用作 C(1,1) 的中心位置,将第二个元素用作 C(m,n) 的中心位置,其中 [m,n] = size(C)。如果 C 为三维数组,则 mn 为前两个维度。C 的其余元素的中心均匀分布在这两点之间。

    每个像素的宽度由以下表达式确定:

    (x(2)-x(1))/(size(C,2)-1)

    如果 x(1) > x(2),则图像左右翻转。

  • 标量 - 会以此位置作为 C(1,1) 的中心,并使后面的每个元素相隔一个单位。

要改用 imagesc 函数的低级版本,请将 XData 属性设为名称-值对组。例如,imagesc(‘XData‘,x,‘YData‘,y,‘CData‘,C)

您无法在以交互方式将图像平移或缩放到图像的 x 轴或 y 坐标轴范围以外,除非设置的坐标轴范围界限已超出图像边界。如果这些轴范围超出边界,则无此类限制。如果其他对象(例如,线条)占用坐标区,并延伸到图像边界以外,您可以平移或缩放到其他对象的边界,但不能越过边界。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

y - 沿着 y 轴放置
[1 size(C,1)] (默认) | 二元素向量 | 标量

沿着 y 轴放置,以下列形式之一指定:

  • 二元素向量 - 将第一个元素用作 C(1,1) 的中心位置,将第二个元素用作 C(m,n) 的中心位置,其中 [m,n] = size(C)。如果 C 为三维数组,则 mn 为前两个维度。C 的其余元素的中心均匀分布在这两点之间。

    每个像素的高度由以下表达式确定:

    (y(2)-y(1))/(size(C,1)-1)

    如果 y(1) > y(2),则图像上下翻转。

  • 标量 - 会以此位置作为 C(1,1) 的中心,并使后面的每个元素相隔一个单位。

要改用 imagesc 函数的低级版本,请将 YData 属性设为名称-值对组。例如,imagesc(‘XData‘,x,‘YData‘,y,‘CData‘,C)

您无法在以交互方式将图像平移或缩放到图像的 x 轴或 y 坐标轴范围以外,除非设置的坐标轴范围界限已超出图像边界。如果这些轴范围超出边界,则无此类限制。如果其他对象(例如,线条)占用坐标区,并延伸到图像边界以外,您可以平移或缩放到其他对象的边界,但不能越过边界。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

clims - 颜色范围
[cmin cmax] 格式的二元素向量

颜色范围,指定为 [cmin cmax] 形式的二元素向量,其中 cmax 大于 cminC 中小于或等于 cmin 的值映射到颜色图中的第一种颜色。大于或等于 cmax 的值将映射到颜色图中的最后一种颜色。介于 cmincmax 之间的值以线性方式映射到颜色图。

如果您指定颜色范围,则 imagesc 函数将坐标区的 CLim 属性设置为指定的值。如果您不指定颜色范围,则 imagesc 将坐标区的 CLim 属性设置为 C 中的最小值和最大值。

ax - Axes 对象
Axes 对象

Axes 对象。如果您不指定 Axes 对象,则 imagesc 使用当前坐标区。

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

示例: imagesc([1 2 3],‘AlphaData‘,0.5) 会显示半透明图像。

此处所列的属性只是一部分图像属性。有关完整列表,请参阅 Image 属性

‘AlphaData‘ - 透明度数据
1 (默认) | 标量 | 大小与 CData 相同的数组

透明度数据,指定为以下格式之一:

  • 标量 - 在整个图像中使用一致的透明度。
  • 大小与 CData 相同的数组 - 对每个图像元素使用不同的透明度值。

AlphaDataMapping 属性控制 MATLAB® 如何解释 alpha 数据透明度值。

示例: 0.5

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

‘AlphaDataMapping‘ - AlphaData 值的解释
‘none‘ (默认) | ‘scaled‘ | ‘direct‘

AlphaData 值的解释,指定为下列值之一:

  • ‘none‘ - 将值解释为透明度值。值 1 或更大的值表示完全不透明,值 0 或更小的值表示完全透明,介于 0 和 1 之间的值表示半透明。
  • ‘scaled‘ - 将值映射到图窗的 alphamap 中。坐标区的最小和最大 alpha 范围确定分别映射到 alphamap 中第一个和最后一个元素的 alpha 数据值。例如,如果 alpha 范围是 [3 5],则小于或等于 3 的 alpha 数据值映射到 alphamap 中的第一个元素。大于或等于 5 的 alpha 数据值映射到颜色图中的最后一个元素。坐标区的 ALim 属性包含 alpha 范围。图窗的 Alphamap 属性包含 alphamap。
  • ‘direct‘ - 将值解释为图窗的 alphamap 的索引。带小数部分的值向下舍取为最接近的整数:
    • 如果值为 doublesingle 类型,则小于或等于 1 的值将映射到 alphamap 中的第一个元素。等于或大于 alphamap 的长度的值映射到 alphamap 中的最后一个元素。
    • 如果值的类型为整数,则 0 或更小的值映射到 alphamap 中的第一个元素。等于或大于 alphamap 的长度的值映射到 alphamap 中的最后一个元素(或者最大可为该类型的范围限值)。整数类型有 uint8uint16uint32uint64int8int16int32int64
    • 如果值为 logical 类型,则值 0 将映射到 alphamap 中的第一个元素,值 1 将映射到 alphamap 中的第二个元素。

输出参数

全部折叠

im - Image 对象
Image 对象

Image 对象。使用 im 在创建图像后设置图像的属性。有关列表,请参阅 Image 属性

详细信息

全部折叠

高级与低级版本

imagesc 函数有两个版本:高级版本和低级版本。如果您使用的 imagesc‘CData‘ 作为输入参数,则您使用的是低级版本。否则,您使用的是高级版本。

imagesc 的高级版本在绘图前调用 newplot 并设置以下坐标区属性:

  • Layer‘top‘。该图像显示在任何刻度线或网格线前面。
  • YDir‘reverse‘。沿 y 轴的值从上到下递增。要使值从上到下递减,请将 YDir 设置为 ‘normal‘。此设置会反转 y 轴和图像。
  • View[0 90]

imagesc 函数的低级版本不调用 newplot 且不设置这些坐标区属性。

对这两个版本,imagesc 函数进行如下设置:

  • Image 对象的 CData 属性设置为 C 中的值。
  • Image 对象的 CDataMapping 属性设置为 ‘scaled‘
  • Axes 对象的 CLim 属性设置为 C 中的最小值和最大值,除非您指定 clims 输入参数。

提示

  • 要将图像数据从不同标准格式(如 TIFF)的图形文件读取到 MATLAB 中,请使用 imread。要将 MATLAB 图像数据写入图形文件,请使用 imwriteimreadimwrite 函数支持各种图形文件格式和压缩方案。
  • 要查看或设置坐标区的颜色范围,您可以使用 caxis 函数。

扩展功能

GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。

用法说明和限制:

  • 此函数接受 GPU 数组,但不在 GPU 上运行。

有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。

分布式数组
使用 Parallel Computing Toolbox™ 在群集的组合内存中对大型数组进行分区。

用法说明和限制:

  • 此函数在分布式数组上运行,但在客户端 MATLAB 中执行。

有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。

另请参阅

函数

属性

主题

原文地址:https://www.cnblogs.com/MCSFX/p/11976372.html

时间: 2024-11-02 21:04:28

Matlab中imagesc用法的相关文章

关于MATLAB中imagesc函数图像保存的问题

这几天我在搞用contourlet变换来做图像融合. 期间,遇到了一个问题,就是将得到的多层矩阵用contourlet反变换后,得到的不是一个正规的图片矩阵,就是每个像素点灰度值大小都在0~255之间,这个矩阵像素点的灰度值有的大于了255,有的小于了0.当直接用imshow()函数来显示这个矩阵的时候,在figure窗口中画出来的完全不是一张正常图片,而是白白的一片,底部有些黑色的东西. 我查看了contourlet工具包里的各种文档说明,参考工具包里的demo程序,使用imagesc(I,[

Matlab中ismember用法

>> a = magic(3) a = 8 1 6 3 5 7 4 9 2 >> ismember(a,3) ans = 0 0 0 1 0 0 0 0 0 >> ismember(3,a) ans = 1 >> ismember(2,a) ans = 1 可看出ismember(a,3)返回逻辑矩阵,如果3在位置上则为1:ismember(3,a)如果3在a中则返回1.

Matlab中struct的用法

struct在matlab中是用来建立结构体数组的.通常有两种用法: s = struct('field1',{},'field2',{},...)  这是建立一个空的结构体,field1,field2是域名称 s = struct('field1',values1,'field2',values2,...)  这是在建立结构体的时候就赋值,values1,values2就是针对field1,field2所赋的值. 例如:s = struct('type',{'big','little'},'c

Matlab中fscanf的用法

今天要用到Matlab 中的fscanf函数,上网找了一下终于明白了,现在自己写一下体会: 下面是fscanf()的主要应用syntax A = fscanf(fileID, format)A = fscanf(fileID, format, sizeA)[A, count] = fscanf(...)  %% returnsthe number of elements that fscanf successfullyreads. 现主要讲解主要用到的第二种形式: A = fscanf(file

matlab中 hold on 与hold off的用法

matlab中 hold on 与hold off的用法 hold on 是当前轴及图形保持而不被刷新,准备接受此后将绘制 hold off 使当前轴及图形不在具备被刷新的性质 hold on 和hold off,是相对使用的前者的意思是,你在当前图的轴(坐标系)中画了一幅图,再画另一幅图时,原来的图还在,与新图共存,都看得到后者表达的是,你在当前图的轴(坐标系)中画了一幅图,此时,状态是hold off,则再画另一幅图时,原来的图就看不到了,在轴上绘制的是新图,原图被替换了 >> t=(0:

matlab中freqz的用法以及多项式的展开

对于一个变量a,matlab中定义需要这样 syms a: 定义之后就可以写由变量组成的式子,比如 c=(1+a^-1)^5; 可以用expand(c) 就能把c展开成多项式,每一项的系数就可以看到. freqz的用法 MATLAB提供了专门用于求离散系统频响特性的函数freqz(),调用freqz()的格式有以下两种: l        [H,w]=freqz(B,A,N) B和A分别为离散系统的系统函数分子.分母多项式的系数向量,N为正整数,返回量H则包含了离散系统频响 在 0——pi范围内

Matlab中的随即置乱函数randperm和randsample函数用法对比

Matlab中的randperm和randsample函数用法对比 转载:http://blog.sina.com.cn/s/blog_a4034b280101k4gg.html 构建替代数据的时候,一种常见的思路是打乱原数据的排列次序,通过随机置换原数据的排列次序从而产生和原数据系列统计特征(如均值.方差.分布)一致的随机数据.具体到Matlab中,此思路的实现会涉及到两个命令:randperm和randsample p.s. 相关的重新排序命令还包括: Reordering Algorith

matlab中norm函数的用法

格式:n=norm(A,p) 功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数 以下是Matlab中help norm 的解释 NORM   Matrix or vector norm. For matrices... NORM(X) is the largest singular value of X, max(svd(X)). NORM(X,2) is the same as NORM(X). NORM(X,1) is the 1-norm of X, the l

matlab中meshgrid函数的用法

在MATLAB中遇到了meshgrid函数,对其使用方式并不是很熟悉,查阅到资料了解到这个函数的主要用法 这个函数主要就是在划分网格的时候可以进行使用 [X,Y] = meshgrid(xgv,ygv),其中X,Y是大小相等的两个矩阵,xgv,ygv是两个矩阵矢量 X:通过将xgv复制length(ygv)行(严格意义上是length(ygv)-1行)得到Y:首先对ygv进行转置得到ygv',将ygv'复制(length(xgv)-1)次得到.例如 [X,Y] = meshgrid(1:3,10