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~~~~~~~~~~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容