1. 问题描述

figure
subplot(1, 2, 1), imshow(A)
subplot(1, 2, 2), imshow(B)

无论 A 和 B 的 size 是否一致,最终显示出来的 figure 中的两幅图像大小都是相同的。

2. 原因及解决

之所以第二个图看起来和第一张图等大,是因为第二个 subplot 的 XY 轴的单位长度比第一个subplot中的要长(二者的比例尺不同)。所以简单一点的解决方法是:将第二个 subplot 的 XLim 和 YLim 属性设为和第一个 subplot 中的对应属性值。

3. demo:图像金字塔变换

% 加载图像数据到内存
I = imread(\'cameraman.tif\');
size(I)

% reduce ==> {2, 4, 8}
I1 = impyramid(I, \'reduce\'); size(I1)
I2 = impyramid(I1, \'reduce\'); size(I2)
I3 = impyramid(I2, \'reduce\'); size(I3)

figure
a1 = subplot(1, 4, 1); imshow(I),  
xs = get(a1, \'xlim\'); ys = get(a1, \'ylim\');
a2 = subplot(1, 4, 2); imshow(I1),
set(a2, \'xlim\', xs, \'ylim\', ys);
a3 = subplot(1, 4, 3); imshow(I2),
set(a3, \'xlim\', xs, \'ylim\', ys);
a4 = subplot(1, 4, 4); imshow(I3)
set(a4, \'xlim\', xs, \'ylim\', ys);

I1 = impyramid(I, \'expand\'); size(I1)
I2 = impyramid(I1, \'expand\'); size(I2)
I3 = impyramid(I2, \'expand\'); size(I3)

figure
a1 = subplot(1, 4, 1); imshow(I3),  
xs = get(a1, \'xlim\'); ys = get(a1, \'ylim\');
a2 = subplot(1, 4, 2); imshow(I2),
set(a2, \'xlim\', xs, \'ylim\', ys);
a3 = subplot(1, 4, 3); imshow(I1),
set(a3, \'xlim\', xs, \'ylim\', ys);
a4 = subplot(1, 4, 4); imshow(I)
set(a4, \'xlim\', xs, \'ylim\', ys);

版权声明:本文为mtcnn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/mtcnn/p/9421365.html