我目前正在MATLAB中使用getframe()
和frame2im
将绘图的图形转换为图像。
我刚刚意识到这几乎就像图中的截图一样,所有轴和标签都被考虑在内。
如何将图中的内容(又称“图”)转换为图像? 我真的不想将它们全部保存到文件中。
答案 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之后裁剪每个图像 - 这对于大小相同的图像都很好(丑陋 - 你只需要找到图像中的灰色边缘),但如果图像都不同,这不会起作用(好吧,它不会很好用。可能有一些方法可以自动调整裁剪尺寸)