图像对象和它的属性
CData形象
请注意
的图像
和显示亮度图像
命令创建映像对象。图像对象是轴对象的子对象,线、块、面和文本对象也是。与所有图形对象一样,图像对象有许多属性,您可以设置这些属性来微调其在屏幕上的外观。图像对象在外观方面最重要的属性是CData
,CDataMapping
,XData
,YData
.这些属性将在本节和以下几节中讨论。有关这些和图像对象的所有属性的详细信息,请参见图像
.
的CData
属性包含数据数组的图像对象。在以下命令中,h
对象的句柄是否创建图像
,以及矩阵X
和Y
都是一样的:
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
的XData
和YData
属性控制图像的坐标系统。对于一个米——- - - - - -n图像,默认的XData
是n [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
属性包括复制矩阵以供图像使用。矩阵的总体大小取决于其各个元素的大小。使用较小的单个元素(即较小的数据类型)可以减小矩阵大小,并减少复制矩阵所需的时间。使用可接受的最小矩阵。
如果显示图像的速度是您的最高优先级,则可能需要在图像的大小和质量上做出妥协。同样,减小大小可以减少复制矩阵所需的时间。
设置限制模式属性(
XLimMode
和YLimMode
(你的斧头)手册
.如果它们被设置为
汽车
,那么每当一个对象(如图像、线、补丁等)改变其数据的某些方面时,轴必须重新计算其相关属性。例如,如果您指定图像(firstimage);集(gca、“xlimmode”,“手动”,…“ylimmode”、“手动”,……“zlimmode”、“手动”,……“climmode”、“手动”,……“alimmode”、“手动”);
在重新绘制图像之前,坐标轴不会重新计算任何限制值。
考虑使用
电影
对象,如果任务的主要目的是简单地在屏幕上显示一系列图像。MATLAB®
电影
对象直接利用底层系统图形资源,而不是执行MATLAB对象代码。这比重复设置图像的速度要快CData
属性,如前所述。