matlab中仅保存plot部分(除去空白)和图像的叠加

保存plot所在部分,除去所有的空白(特么搞了我一整天)

画好plot之后执行
set(gca,’position’,[0 0 1 1],’units’,’normalized’); %save plot without blank

gca是指 plot axes

再设置图像的像素(大小)
set(gcf,’Position’,[0,0,map_size1,map_size2]);%set image size

注意这里面的map_size,太坑爹了,不能设置正常值,一定要除以一个系数,比如我想设置大小为1440*960大小,然后map_size1=1440/1.5625,map_size2=960/1.5625。这样用saveas(gcf,’filename.png’)保存图像的像素才是你想要的。

不要问我为什么,我也不知道。为什么是1.5625,我也是测试了n多不同尺寸的图像之后得到的系数,也找不到相关的支持,如果有人知道为什么一定要告诉我。

叠加图像

叠加图像很简单,画好一个plot或者imread进来一个图像之后,hold on,继续imread或者plot即可。

关键在于叠加图像必然涉及到图像透明色的设置。

最好采用png格式的图像,imread进来之后有alpha通道可以直接设置透明色:
[I,map,alpha] =imread(room_map); %read image
hr=imshow(I);%show image
set(hr,’AlphaData’,alpha);%set room map transparent color

就是那么easy~~~~~~~~~~

    原文作者:marine0131
    原文地址: https://www.jianshu.com/p/f2c3d5789b98
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞