matlab横坐标不同尺度,MATLABsubplot显⽰不同尺度图像最近要⽤到到图像⾦字塔基本操作,使⽤MATLAB显⽰各个尺度的图像时,使⽤subplot显⽰的为⼤⼩⼀致的图像,不是多尺度的,在⽹上查了⼀些资料,下⾯贴⼀下我实验的各种⽅法。
subplot是MATLAB中的函数。
使⽤⽅法:subplot(m,n,p)或者subplot(m n p)。
subplot是将多个图画到⼀个平⾯上的⼯具。其中,m表⽰是图排成m⾏,n表⽰图排成n列,也就是整个figure中有n个图是排成⼀⾏的,⼀共m⾏,如果m=2就是表⽰2⾏图。p表⽰图所在的位置,p=1表⽰从左到右从上到下的第⼀个位置。
example1
读取保存好的拉普拉斯⾦字塔的各级图⽚,使⽤⼀般的subplot函数显⽰,显⽰的图像⼤⼩⼀致。(PS:读取的⽂件⼤⼩是不⼀样的)
clear all;
clc;
I1 = imread('img/pry1.bmp');
用subplot函数I2 = imread('img/pry2.bmp');
I3 = imread('img/pry3.bmp');
I4 = imread('img/pry4.bmp');
%% sublpot one
% DESCRIPTIVE TEXT
figure
a1 = subplot(141);imshow(I1);title('1');
a2 = subplot(142);imshow(I2);title('2');
a3 = subplot(143);imshow(I3);title('3');
a4 = subplot(144);imshow(I4);title('4');
example2
之所以所有图看起来是等⼤,是因为第⼆个和以后的⼏个subplot的XY轴的单位长度⽐第⼀个subplot中的要长。所以简单⼀点的解决⽅法是:将第⼆个和以后的⼏个subplot的XLim和YLim属性设为和第⼀个subplot中的对应属性值。不过这个⽅法只能让缩⼩后的图居于左上⾓。如果想要居中效果的话,xsize和ysize就要稍微变⼀下才可以了。
figure
a1 = subplot(141);imshow(I1);title('1');
a2 = subplot(142);imshow(I2);title('2');
a3 = subplot(143);imshow(I3);title('3');
a4 = subplot(144);imshow(I4);title('4');
xsize = get(a1, 'XLim');
ysize = get(a1, 'YLim');
set(a2, 'XLim',xsize,'YLim',ysize);
set(a3, 'XLim',xsize,'YLim',ysize);
set(a4, 'XLim',xsize,'YLim',ysize);
example3
还有⼀种⽅法是使⽤subplot('Position',positionVector)。
表⽰在当前图形的位置(position)上画图,该位置采⽤归⼀化的⽅式,即将当前的图形窗⼝左下⾓设置为[0,0],右上⾓设置为[1,1],[left
bottom width height]中left表⽰距离图形窗⼝左边的距离,bottom表⽰距离窗⼝下边的距离,width,heigth分别表⽰绘制坐标轴的⼤⼩,其中要注意的是left bottom width height这四个值都是0和1之间,刚才也说了,是归⼀化的坐标.
figure
subplot('position',[0.05,0.2,0.4,0.6]);imshow(I1);title('1');
subplot('position',[0.5,0.2,0.2,0.3]);imshow(I2);title('2');
subplot('position',[0.75,0.2,0.1,0.15]);imshow(I3);title('3');
subplot('position',[0.9,0.2,0.05,0.075]);imshow(I4);title('4');
参考⽂献:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。