文档

getframe

捕捉轴或图形作为电影帧

语法

F = getframe
F = getframe(ax)
F = getframe(图)
F = getframe(___矩形)

描述

例子

F= getframe在当前轴作为电影帧出现在屏幕上时捕获它。F包含图像数据的结构。getframe捕获在屏幕上显示的相同大小的轴。它不捕获标记标签或轴轮廓之外的其他内容。

例子

F= getframe (斧头捕获由标识的轴斧头而不是现在的坐标轴。

例子

F= getframe (无花果捕获标识的数字无花果.如果希望捕获图窗口的整个内部,包括轴标题、标签和勾标记,则指定一个图。捕获的影片帧不包括图形菜单和工具栏。

F= getframe (___矩形控件定义的矩形内的区域矩形.指定矩形作为四元向量的形式[左底宽高].的选项中使用此选项斧头无花果在前面的语法中输入参数。

例子

全部折叠

创建一个随机数据图。捕获坐标轴并返回图像数据。getframe捕捉轴的内部和轴的轮廓。它不捕获扩展到坐标轴轮廓以外的内容。

plot(rand(5)) F = getframe;

F结构是否带有字段cdata它包含捕获的图像数据。

显示捕获的图像数据imshow

图imshow (F.cdata)

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

surf(peaks) F = getframe(gcf);

F结构是否带有字段cdata它包含捕获的图像数据。

显示捕获的图像数据imshow

图imshow (F.cdata)

捕捉一个轴的内部加上每个方向30像素的空白。为了在捕获帧中包含标记标签,需要添加空白。根据标记标签的大小,可能需要调整空白。

创建一个随机数据图。

情节(兰德(5))

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

Drawnow ax = gca;斧子。单位=“像素”;Pos = ax。位置
Pos = 73.8000 47.2000 434.0000 342.3000

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

Marg = 30;矩形=[高山草地,高山草地,pos(3) + 2 *高山草地,pos(4) + 2 *玛格);F = getframe(gca,rect);斧子。单位=“归一化”

显示捕获的图像数据imshow

图imshow (F.cdata)

计算轴周围的空白,以便捕获的图像数据包括标题、轴标签和标记标签。

创作一个有标题和x设在标签。

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

将坐标轴单位更改为像素并存储位置TightInset属性值。的TighInset属性是窗体的四元素向量[左下右上].这些值是用于标记值和文本标签的轴周围的边距。

Drawnow ax = gca;斧子。单位=“像素”;pos = ax.位置;ti = ax.TightInset;

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

矩形= [ti (1), ti (2), pos ti (1) + (3) + ti (3), pos (4) + ti (2) + ti (4)];F = getframe(ax,rect);

显示捕获的图像数据imshow

图imshow (F.cdata)

创建一个带有两个子图的图。在上面的副图中,画一条蓝线。在下面的副图中,画一条红线。

Ax1 = subplot(2,1,1);情节(1:10“b”) ax2 = subplot(2,1,2);情节(1:10“r”

捕获下副图的内容。getframe捕捉副情节的内部和边界。它不捕获超出子图轮廓的标记值或标签。

F = getframe(ax2);

显示捕获的图像数据imshow

图imshow (F.cdata)

的记录帧山峰功能振动getframe在循环中。预先分配一个数组来存储电影帧。

Z =峰;冲浪(Z)轴手册Ax = gca;斧子。NextPlot =“replaceChildren”;循环= 40;F(循环)= struct(cdata的[],“colormap”[]);j = 1:循环X = sin(j*pi/10)*Z;surf(X,Z) drawnow F(j) = getframe(gcf);结束

播放电影两次。

图=图;电影(无花果、F、2)

输入参数

全部折叠

要捕获的坐标轴,指定为坐标轴对象。如果希望捕获非当前轴的轴,则使用此选项。

getframe捕获包含坐标轴轮廓的最小矩形内的内容。如果希望捕获所有的标记值和标签,则使用无花果输入参数。

例子:F = getframe(ax);

要捕获的图形,指定为图形对象。使用gcf以捕获当前数字。

例子:F = getframe(gcf);

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

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

例子:F = getframe(gcf,[0 0 560 420]);

输出参数

全部折叠

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

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

  • colormap-颜色图。在真彩色系统上,此字段为空。

    注意:这些是一些重要的考虑cdata

    • 如果查询该区域的大小getframe捕获(图、轴或指定的区域)矩形),尺寸在像素中的元素个数可能不匹配cdata.这种差异是由于元素的数量cdata取决于你的屏幕分辨率(和操作系统设置),但像素在MATLAB®可能与屏幕上的实际像素不一致。

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

更多关于

全部折叠

像素

像素距离与Windows上的系统分辨率无关®和麦金塔系统:

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

  • 在麦金塔系统上,一个像素是1/72英寸。

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

提示

  • 使用时的最快性能getframe,确保图形在屏幕上可见。如果图形不可见,getframe仍然可以捕获图形,但性能可能会变慢。

  • 要对图像数据的分辨率进行更多控制,请使用打印函数来代替。的cdata参数print返回图像数据。的决议输入参数控制图像的分辨率。

R2006a之前介绍过

这个话题有帮助吗?