在MATLAB中仅将图形的内容转换为图像

时间:2014-05-28 21:28:18

标签: matlab image-processing matlab-figure

我目前正在MATLAB中使用getframe()frame2im将绘图的图形转换为图像。

我刚刚意识到这几乎就像图中的截图一样,所有轴和标签都被考虑在内。

如何将图中的内容(又称“图”)转换为图像? 我真的不想将它们全部保存到文件中。

2 个答案:

答案 0 :(得分:2)

您可以使用getframe / cdata成语。这样做的是,如果你在没有任何参数的情况下在当前帧上调用getframe,它将返回一个包含名为cdata的结构元素的结构。它存储 RGB 像素数组只是数字内容本身。未捕获轴和标签 - 仅捕获绘制在图上的内容。

这是一个让你入门的例子:

im = imread('cameraman.tif');
imshow(im);
h = getframe;
out = h.cdata;
figure;
imshow(out); %// Should give you the contents within the imshow frame.

FWIW,我也在这里回答了同样的问题,虽然这是针对不同的情况:keep new image when drawing lines by dragging the mouse in matlab

答案 1 :(得分:0)

据我所知,cdata不起作用。我最近遇到了一个主要问题 - 我可以找到的唯一工作就是在使用getframe和cdata之后裁剪每个图像 - 这对于大小相同的图像都很好(丑陋 - 你只需要找到图像中的灰色边缘),但如果图像都不同,这不会起作用(好吧,它不会很好用。可能有一些方法可以自动调整裁剪尺寸)