matlab批量保存图像

大量的数据,大量的图像,再加上机器的性能差强人意,手动的保存这些图着实很让人郁闷。百度了一下“matlab自动批量保存图像”,得到一些解答,其实挺简单,只需在程序中加一句话:

for i=1:Q
     print(gcf,'-djpeg',['C:\',num2str(i),'.jpeg']);
end

         其中,Q为要保存图的数量;gcf为当前图像的句柄;'djpeg'为保存图像的格式;'C:\'为图像保存的路径;num2str(i)为图像保存的名字,即1.jpeg、2.jpeg……。这里需要注意:i是变量,是数值,而在命名的时候,i需要以字符的形式出现。所以要通过num2str函数将i由数值转换成字符。

        我使用了上面这句,但不知是机器内存不够还是其他什么原因,每当保存到50多幅图的时候就会报错。后面觉得把每幅图都保存也没太大的意义,就只保存了效果明显和全局的地图。报错的原因至今未知。matlab批量保存图像

                      

        另外还有saveas命令,下面这段是copy的别人的:

Step 1. 先使所画的图最大化,即占满整个屏幕:

scrsz = get(0,'ScreenSize');
figure1=figure('Position',[0 30 scrsz(3) scrsz(4)-95]);

        或者(下面这种情况会把windows系统下面的任务栏也保存到图片中,不太好):

scrsz = get(0,'ScreenSize');
figure1=figure('Position',[0 0 scrsz(3) scrsz(4)-66]);

        下面的代码可以创建一个大小为整个屏幕的四分之一,位置在屏幕在左上角的一个figure对像,使用root对象的ScreenSize属性来取得屏幕的尺寸,ScreenSize是由四个元素组成的数据[left,bottom,width,height]):

scrsz = get(0,'ScreenSize');
figure2=figure('Position',[1 scrsz(4)/2 scrsz(3)/2 scrsz(4)/2])

Step 2. 生成数据并画图:

x=rand(100,1);
plot(x);
saveas(gcf,'filename','bmp');
saveas(gcf,'filename','emf');
saveas(gcf,'filename','jpg');

Step 3. 清理现场:
clear all; clc; close all;

展开阅读全文

没有更多推荐了,返回首页