matlab中如何将输出的figure中的图像保存在我的文档中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中如何将输出的figure中的图像保存在我的文档中相关的知识,希望对你有一定的参考价值。

直接将图片另存为jpg格式或者其他格式都行 参考技术A figure图像是通过MATLAB处理数字的常用表示方法,通过图像可以清晰的看到数字简单的关系,要想保存图像以下有四种方法可供选择:
1、直接另存为
在figure中使用菜单file——>saveas——>选择保存形式(fig,eps,jpeg,gif,png,bmp等),这个的缺点是另存为的图像清晰度有很大的牺牲
2、复制到剪贴板
在figure中使用菜单edit——>copy figure——>此时图像就复制到剪贴板了,我们可以借助其他软件(比如:绘图板)保存为需要的图片
3、saveas命令格式
Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】
% saveas(figure_handle,filename,fileformat)
plot(1:10);
saveas(gcf,‘myfig.jpg’)
复制代码
4、print函数
print函数原本不是用来进行图像保存了,而是操作打印机的,但是这里我们可以借用下
% print(figure_handle,fileformat,filename)
x=-pi:2*pi/300:pi;
y=sin(x);
plot(x,y);
%Matlab根据文件扩展名,自动保存为相应格式图片,另外路径可以是绝对也可以是相对
print(gcf,'-dpng','abc.png') %保存为png格式的图片到当前路径
复制代码
另外有网友向我反映,有时我们只有一个Matlab图像的fig文件,但没有该图像的相关坐标数据,那我们如何获取fig图像的数据呢,这个其实比较好办
1、将那个fig文件保存到Matlab的搜索路径下,双击打开它
2、在Matlab的command中输入如下内容
h=get(gcf,'chidren')
data=get(h,'xdata','ydata','zdat a')
%此时图形中所有图像的三维数据x,y,z将会以结构体的形式保存到data变量中了
参考技术B 直接选择保存格式就可以了

如何使用matlab将256灰度位图图像保存为24位灰度图像?

我有一个256 graylevel位图图像,我在matlab中创建。我想用matlab将它保存到24位灰度图像中?这是我在mtlab中编写的代码。它将灰度图像保存为bmp程序,以创建随机相位线像素列10列,并将文件%写入计算机。 %返回1D中的输入向量Ein。

clear all
    close all
    for m=1:25

    mask1=zeros(1140,912);

    line=randi(255,1140,1);

    Ein(:,:,m)=line;



    % line=randi(255,540,1);
    % temp_line=line;
    % % save('line')
    % mask=zeros(1080,1)
    % i=1;
    % 
    % for k=1:length(line)
    % for i=i:i+1
    %     
    %     mask(i)=line(k);
    %     
    % end
    % i=i+1;
    % end
    % line=mask;




            mask1(:,456)=line(:,:);
    %          mask(1:1080,956)=line;
    %           mask(1:1080,957)=line;
    %            mask(1:1080,958)=line;
    %             mask(1:1080,959)=line;
    %              mask(1:1080,960)=line;
    %               mask(1:1080,961)=line;
    %                mask(1:1080,962)=line;
    %                 mask(1:1080,963)=line;
    %                  mask(1:1080,964)=line;

    %                  imwrite(unit8(mask),'Dec_21_mask_1.bmp')
    imwrite(uint8(mask1),sprintf('DMDmask_%d.bmp',m))
    %                  imwrite(uint8(mask1),'new_mask4.bmp')
    %                  f=imread('DMDmask_1.bmp');
    %                  figure
    %                  imshow(f)


    %         figure
    %  
    % imshow((mask),[])
    % Ein_angle=Fit_GrayLevel_To_Ein_Vector(mask);
    % Ein_angle=Fit_GrayLevel_To_Ein_Vector(line);
    % 
    % figure
    % 
    % imshow(Ein_angle)

    % Ein(m,:,:)=exp(1i*Ein_angle(:,:));
    % figure
    % imshow(angle(Ein));






    end
    save('Ein')
    % mask=angle(mask);
    % 
    % SLM_mask=Fit_GrayLevel_To_SLM_Vector(mask);
    % figure
    % imshow(SLM_mask)
答案

我认为你想要将图像保存为24位RGB图像,而不是24位灰度值图像,因为这些图像根本不是标准的,而且我在漫长的职业生涯中从未见过。

要将其转换为24位RGB图像,您可以这样做:

rgb_image = repmat(mask1,[1,1,3]);
imwrite(uint8(rgb_image),sprintf('DMDmask_%d.bmp',m))

以上是关于matlab中如何将输出的figure中的图像保存在我的文档中的主要内容,如果未能解决你的问题,请参考以下文章

matlab如何让调整保存图像的大小

matlab中如何保将显示出来的图像保存

MATLAB中如何将imshow后的图片保存成原始大小的?

matlab 关于保存图像的问题

怎样将matlab中的数据导出

Matlab绘图基础——用print函数保存图片(Print figure or save to file)