主要内容

GetFrame.

捕捉坐标轴或图形作为电影帧

描述

例子

F= getframe当当前轴作为影片帧显示在屏幕上时捕获它。F是包含图像数据的结构。GetFrame.以屏幕上显示的相同大小捕获轴。它不捕获轴轮廓外的勾号标签或其他内容。

例子

F= getframe (斧头捕获的坐标轴斧头而不是当前的坐标轴。

例子

F= getframe (无花果捕获所识别的图无花果.如果要捕获图形窗口的整个内部,请指定图形,包括轴标题,标签和勾选标记。捕获的电影框不包括图形菜单和工具栏。

F= getframe (___捕获由矩形中定义的矩形内的区域.指定作为形式的四元素矢量[左下宽度].使用此选项使用斧头要么无花果前面语法中的输入参数。

例子

全部收缩

创建随机数据图。捕获轴并返回图像数据。GetFrame.捕获轴的内部和轴的轮廓。它不捕获超出坐标轴轮廓的内容。

绘图(兰特(5))f = getFrame;

F结构与场有关吗cdata.包含捕获的图像数据。

使用捕获的图像数据使用imshow.

图imshow(f.cdata)

创建曲面图。捕获图形窗口的内部,不包括菜单和工具栏。

surf(peaks) F = getframe(gcf);

F结构与场有关吗cdata.包含捕获的图像数据。

使用深色背景显示捕获的图像数据imshow.,所以你可以看到捕获的区域。

数字('颜色'(c .c . data)

捕获轴的内部加上每个方向上的30个像素的边缘。添加的余量是必要的,包括在捕获帧中包含刻度标签。根据刻度标签的大小,可能需要调整边距。

创建随机数据图。

情节(兰德(5))

将坐标轴单位更改为像素并返回当前坐标轴位置。位置向量的第三和第四个元素以像素为单位指定轴的宽度和高度。

Drawnow ax = gca;ax.units =.“像素”;pos = ax.position.
POS = 73.8000 47.2000 434.0000 342.3000

创建一个四元素矢量,,它定义了一个矩形区域,覆盖坐标轴加上所需的边距。前两个要素指定矩形的左下角相对于坐标轴的左下角。最后两个元素指定矩形的宽度和高度。将轴单元重置为默认值“归一化”

玛格= 30;rect = [-Marg,-Marg,POS(3)+ 2 * MARG,POS(4)+ 2 * MARG];f = getFrame(GCA,RECT);ax.units =.“归一化”

使用深色背景显示捕获的图像数据imshow.,所以你可以看到捕获的区域。

数字('颜色'(c .c . data)

计算轴周围的边缘,以便捕获的图像数据包括标题,轴标签和刻度标签。

创建一个标题和一个绘图x设在标签。

情节(兰德(5))包含(“x”) 标题('随机数据的情节'

将坐标轴单位更改为像素并存储位置circoriset.轴的属性值。的TighInset属性是一个四元素向量的形式[左下角].值是旋钮值和文本标签周围使用的边距。

Drawnow ax = gca;ax.units =.“像素”;pos = ax.Position;ti = ax.TightInset;

创建一个四元素矢量,,它定义一个矩形区域,覆盖坐标轴和自动计算的边距。前两个要素指定矩形的左下角相对于坐标轴的左下角。最后两个元素指定矩形的宽度和高度。

rect = [-ti(1),-Ti(2),POS(3)+ Ti(1)+ Ti(3),POS(4)+ Ti(2)+ Ti(4)];f = GetFrame(AX,Rect);

使用深色背景显示捕获的图像数据imshow.,所以你可以看到捕获的区域。

数字('颜色'(c .c . data)

从R2019B开始,您可以使用使用的绘制图tiledlayoutnexttile功能。调用tiledlayout函数创建一个2乘1的平铺图表布局。调用nexttile创建轴对象的功能ax₁ax2.在每个轴中绘制一条线。

TileDlayout(2,1)AX1 = NEXTTILE;情节(1:10,“b”)AX2 = NEXTTILE;情节(1:10,“r”

捕获下方坐标轴的内容。GetFrame.抓住了场地的内部和边界。它不捕获超出情节大纲的刻度值或标签。

f = getFrame(AX2);

使用捕获的图像数据使用imshow.

图imshow(f.cdata)

记录框架利用函数振动GetFrame.在循环中。预先释放一个数组以存储电影帧。

z =峰;冲浪(Z)轴紧的手册斧头= GCA;ax.nextplot =.“更换替代”;循环= 40;F(循环)=结构('cdata',[],“colormap”[]);j = 1:循环x = sin(j * pi / 10)* z;Surf(x,z)绘制f(j)= getFrame(GCF);结束

两次播放电影。

图=图;电影(图,2)

输入参数

全部收缩

要捕获的轴,指定为对象或A.地理学对象。如果您想要捕获不是当前轴的轴,请使用此选项。

GetFrame.捕获包含轴轮廓的最小矩形内的内容。如果您想捕获所有的标记值和标签,那么使用无花果输入参数。

例子:F = getframe (ax);

图要捕获,指定为数字对象。

矩形区域捕获,指定为表单的四元素矢量[左下宽度]像素.的底部元素定义矩形左下角的位置。位置是相对于作为第一个输入参数指定的图形或轴的GetFrame..的宽度高度元素定义矩形的尺寸。

指定完全包含在图形窗口中的矩形。

输出参数

全部收缩

电影帧,返回为带有两个字段的结构:

  • cdata.- 存储为阵列的图像数据uint8值。图像数据数组的大小取决于屏幕分辨率。

  • COLOROMAP.- Colormap。在真正的颜色系统上,此字段为空。

请注意

这些是关于大小的重要考虑因素cdata.

  • 如果您查询该区域的大小GetFrame.捕获(图形、轴或指定的区域)),大小像素可能与元素数量不符cdata..这种差异是因为元素的数量cdata.取决于你的屏幕分辨率(和操作系统设置),但在MATLAB中的像素®可能与屏幕上的实际像素对应。

  • 从R2015b开始,如果您使用的是高分辨率系统,那么cdata.可能比以前的版本或在其他系统上更大。

限制

  • GetFrame.不支持以下功能金宝appMATLAB在线™或在网络应用程序(MATLAB编译器)

    • 捕获使用的数字的内容uifigure功能或图中的任何轴。

    • 捕捉应用程序的内容创建与应用程序设计器或应用程序中的任何轴。

更多关于

全部收缩

像素

像素的距离与Windows上的系统分辨率无关®Macintosh.系统:

  • 在Windows系统中,像素是1/96英寸。

  • Macintosh.系统,像素是1/72nd的英寸。

在Linux上®在系统中,一个像素的大小是由你的系统分辨率决定的。

提示

  • 用于使用时的最快性能GetFrame.,确保屏幕上可见图。如果图形不可见,GetFrame.仍然可以捕获这个数字,但性能可能会慢。

  • 要更多地控制图像数据的分辨率,请使用打印功能。的cdata.参数与print一起返回图像数据。的决议输入参数控制图像的分辨率。

在R2006A之前介绍