Matlab创建不同尺寸子图求助:自定义大小图像并排显示
解决Matlab中并排显示不同尺寸图像的问题
我太懂这个痛点了——subplot天生就是把整个绘图区域均分,不管你想让每张图显示成多大,结果全是一样的尺寸,贼闹心。要实现不同尺寸的图像并排显示,别死磕subplot了,直接手动创建坐标轴(axes)来精准控制每个图的位置和大小就行,结合imresize调整图像的显示尺寸,给你写个具体可运行的例子:
% 1. 先读取你的四张图像(替换成你自己的图像路径) img1 = imread('your_image1.jpg'); img2 = imread('your_image2.jpg'); img3 = imread('your_image3.jpg'); img4 = imread('your_image4.jpg'); % 2. 用imresize设置每张图的显示尺寸(比例自定义) resized_img1 = imresize(img1, 0.2); % 缩小到原尺寸的20% resized_img2 = imresize(img2, 0.4); % 缩小到原尺寸的40% resized_img3 = imresize(img3, 0.3); % 缩小到原尺寸的30% resized_img4 = imresize(img4, 0.5); % 缩小到原尺寸的50% % 3. 获取调整后图像的宽高信息 [h1, w1, ~] = size(resized_img1); [h2, w2, ~] = size(resized_img2); [h3, w3, ~] = size(resized_img3); [h4, w4, ~] = size(resized_img4); % 4. 计算整体布局的参数:统一高度(用最高的图像高度),总宽度加空隙 max_height = max([h1, h2, h3, h4]); gap = 15; % 图像之间的空隙 total_width = w1 + w2 + w3 + w4 + 3*gap; % 3个空隙 % 5. 创建适配的figure窗口 figure('Position', [100, 100, total_width, max_height + 40]); % 底部留40像素的空间 % 6. 逐个创建坐标轴并显示图像,手动定位 current_x = 10; % 起始x坐标(距figure左侧的像素) % 第一张图 axes('Position', [current_x/total_width, 20/(max_height+40), w1/total_width, max_height/(max_height+40)]); imshow(resized_img1); axis off; % 关闭坐标轴让显示更干净 current_x = current_x + w1 + gap; % 第二张图 axes('Position', [current_x/total_width, 20/(max_height+40), w2/total_width, max_height/(max_height+40)]); imshow(resized_img2); axis off; current_x = current_x + w2 + gap; % 第三张图 axes('Position', [current_x/total_width, 20/(max_height+40), w3/total_width, max_height/(max_height+40)]); imshow(resized_img3); axis off; current_x = current_x + w3 + gap; % 第四张图 axes('Position', [current_x/total_width, 20/(max_height+40), w4/total_width, max_height/(max_height+40)]); imshow(resized_img4); axis off;
关键逻辑说明:
axes('Position', [left, bottom, width, height])是核心:四个参数都是归一化坐标(范围0-1),分别代表坐标轴距figure左侧、底部的比例,以及坐标轴的宽高占figure的比例。- 我们先通过
imresize把图像调整到想要的显示尺寸,再根据这些尺寸计算每个坐标轴的位置,这样就能让每张图按你想要的大小并排显示。 - 如果不想统一高度,也可以把每个坐标轴的
height参数改成hX/(max_height+40)(X对应1-4),这样每张图会保持自己的原始宽高比,高度也不一样,完全自定义布局。
内容的提问来源于stack exchange,提问作者intl
相关产品推荐
相关产品推荐

