文档

图像对象和它的属性

CData形象

请注意

图像显示亮度图像命令创建映像对象。图像对象是轴对象的子对象,线、块、面和文本对象也是。与所有图形对象一样,图像对象有许多属性,您可以设置这些属性来微调其在屏幕上的外观。图像对象在外观方面最重要的属性是CDataCDataMappingXData,YData.这些属性将在本节和以下几节中讨论。有关这些和图像对象的所有属性的详细信息,请参见图像

CData属性包含数据数组的图像对象。在以下命令中,h对象的句柄是否创建图像,以及矩阵XY都是一样的:

h = image(X);colormap(map) Y = get(h,'CData');

的维数CData数组控制图像是使用色图颜色显示还是作为RGB图像显示。如果CData数组是二维的,图像要么是索引图像,要么是强度图像;在任何一种情况下,图像都是使用色图颜色显示的。另一方面,如果CData数组——- - - - - -n× 3,它显示为真彩色图像,忽略色图颜色。

图像CDataMapping

CDataMapping属性控制图像是否为索引强度.要显示索引图像,请设置CDataMapping财产“直接”的值CData数组直接用作图形颜色映射的索引。当图像命令与单个输入参数一起使用,它设置的值CDataMapping“直接”

h = image(X);colormap(map) get(h,'CDataMapping') ans = direct

的值显示强度图像CDataMapping财产“缩放”.在这种情况下,CData值被线性缩放以形成颜色映射索引。坐标轴这一属性控制比例因子。的显示亮度图像函数创建一个图像对象,其CDataMapping属性设置为“缩放”,并调整这一属性。例如:

h = imagesc(I,[0 1]);colormap(map) get(h,'CDataMapping') ans =缩放的get(gca,'CLim') ans = [0 1]

XData和YData

XDataYData属性控制图像的坐标系统。对于一个——- - - - - -n图像,默认的XDatan [1]默认值YData(1米).这些设置意味着以下内容:

  • 图像的左列有一个x- 1的坐标。

  • 图像的右列有一个x协调的n。

  • 图像的第一行有y- 1的坐标。

  • 图像的底部行有y协调的m。

图像坐标系

使用默认坐标系统

使用默认坐标系统显示图像。使用颜色colorcube地图。

C = [1 2 3 4];5 6 7 8;[9 10 11 12];im = image(C);colormap (colorcube)

指定坐标系

显示图像并指定坐标系统。使用颜色colorcube地图。

C = [1 2 3 4];5 6 7 8;[9 10 11 12];X = [-1 2];Y = [24];figure image(x,y,C) colormap(colorcube)

添加文本到图像数据

这个示例展示了如何使用数组索引将文本光栅化到现有图像中。

在坐标轴上绘制文本文本函数。然后,使用。从屏幕捕获文本getframe然后闭合图形。

FIG =图;T = text(0.05,.1,“山魈脸”“字形大小”, 20岁,“FontWeight”“大胆”);F = getframe(gca,[10 10 200 200]);关闭(图)

返回的结果RGB图像的任意平面getframe.找到黑色的像素(黑色为0),并将其下标转换为索引sub2ind.使用这些下标将文本“绘制”到包含的图像中山魈MAT-file。使用该图像的大小加上文本的行和列位置来确定新图像中的位置。索引到新图像,替换像素。

c = F.cdata(:,:,1);[i,j] = find(c==0);负载山魈ind = sub2ind(size(X),i,j);X(ind) = uint8(255);

使用骨骼颜色图显示新图像。

显示亮度图像(X) colormap

快速图像更新的附加技术

增加…的速度CData图像对象的属性更新,优化CData并设置一些相关的图形和轴的属性:

  • 使用尽可能小的数据类型。使用一个uint8图像的数据类型将比使用数据类型。

    设置图像的过程的一部分CData属性包括复制矩阵以供图像使用。矩阵的总体大小取决于其各个元素的大小。使用较小的单个元素(即较小的数据类型)可以减小矩阵大小,并减少复制矩阵所需的时间。

  • 使用可接受的最小矩阵。

    如果显示图像的速度是您的最高优先级,则可能需要在图像的大小和质量上做出妥协。同样,减小大小可以减少复制矩阵所需的时间。

  • 设置限制模式属性(XLimModeYLimMode(你的斧头)手册

    如果它们被设置为汽车,那么每当一个对象(如图像、线、补丁等)改变其数据的某些方面时,轴必须重新计算其相关属性。例如,如果您指定

    图像(firstimage);集(gca、“xlimmode”,“手动”,…“ylimmode”、“手动”,……“zlimmode”、“手动”,……“climmode”、“手动”,……“alimmode”、“手动”);

    在重新绘制图像之前,坐标轴不会重新计算任何限制值。

  • 考虑使用电影对象,如果任务的主要目的是简单地在屏幕上显示一系列图像。

    MATLAB®电影对象直接利用底层系统图形资源,而不是执行MATLAB对象代码。这比重复设置图像的速度要快CData属性,如前所述。

这个话题有帮助吗?