我有一个已保存的matlab .fig
文件,其中有一个图像,我使用openfig
打开图。我问我如何在矩阵中复制图形值(比如说img
480x640 double
)来开始对它进行一些处理。如果有人可以请指教。
答案 0 :(得分:4)
非常简单。假设你打开了你的数字,首先你需要确保你有一个当前数字的句柄,所以执行:
h = gcf;
图中绘制的数据通常是axes
对象的子项。轴对象本身就是图形的子对象,因此您需要在获得所需内容之前访问一系列分层成员。因此,您需要获取axes
句柄,然后获取axes
句柄的子项
绘制的数据通常是Axes对象的“子”。轴对象本身就是图中的子对象。您可以按如下方式进入其层次结构:
axesObjs = get(h, 'Children'); %axes handles
dataObjs = get(axesObjs, 'Children'); %handles to low-level graphics objects in axes
打开您的数字,我发现您的数据类型为Image
。要访问Image
数据,您需要访问CData
字段,因此您需要执行此操作:
data = get(dataObjs, 'CData');
data
现在应该包含您的图片数据。因此,这里是完整的代码,因此您可以将其复制并粘贴到MATLAB中:
openfig('input.fig')
h = gcf;
axesObjs = get(h, 'Children');
dataObjs = get(axesObjs, 'Children');
data = get(dataObjs, 'CData');
上述内容适用于MATLAB R2013b。如果您正在使用MATLAB R2014a及更高版本,则使用点符号代替get
函数,因此:
openfig('input.fig')
h = gcf;
axesObjs = h.Children;
dataObjs = axesObjs.Children;
data = dataObjs.CData;