Image MATLAB:使用打印功能覆盖图像

Image MATLAB:使用打印功能覆盖图像,image,matlab,Image,Matlab,我正在使用MATLAB中的打印函数来编写绘图的图像,类似这样的东西 print(figure(1),'-dpng','-r300',filename); 但很明显,图像没有被覆盖,原始图像保留下来。我以前使用过saveas,它似乎覆盖了图像,但print给了我更多的输出选项。有什么想法吗 更新:在打印之前,我用不同的功能删除了文件 您可以使用: im = frame2im(getframe(gcf,rec)); %Grabs image of plot as an image imsave(i

我正在使用MATLAB中的打印函数来编写绘图的图像,类似这样的东西

print(figure(1),'-dpng','-r300',filename);
但很明显,图像没有被覆盖,原始图像保留下来。我以前使用过saveas,它似乎覆盖了图像,但print给了我更多的输出选项。有什么想法吗

更新:在打印之前,我用不同的功能删除了文件

您可以使用:

im = frame2im(getframe(gcf,rec)); %Grabs image of plot as an image
imsave(im, filename);  %save image
这种语法可能不是100%,我已经用了一段时间了。
还要注意,这并不完美——我记得在抓取情节边缘的灰色边框时遇到了问题。此外,我认为图像可能基于matlab屏幕截图。。。。在matlab中保存图形是相当麻烦的,特别是如果保存的图像看起来像原始图形

就我自己而言,我通过使用export_fig找到了解决方案。 这是下载量最大的fileexchange文件之一-也许您应该尝试一下:

有关export_fig的详细介绍,请访问:

您的代码基本上看起来不错,它也适用于我。保存的图像将被覆盖。要找到它不适用于您的原因,请提供更多代码。可能该文件被其他应用程序或Matlab本身锁定,因此无法编写。做一些测试,我认为这就是问题所在。不知怎的,Matlab锁定了它,所以我甚至不能在程序中使用delete'filepath'之类的东西来删除它。为什么会这样?我对这个文件所做的唯一一件事就是打印图1,'-dpng','-r300',filename;,在我所有的代码中只有一次。它保存图像的唯一时间是在第一次保存之前没有同名的图像。我该如何预防或解决这一问题?