我有一个包含1000张图片的4维矩阵。 矩阵的形状为1000 * 32 * 32 * 3(1000是图片数,32 * 32是2像素值,3是RGB-3通道)。
我想知道如何为图片显示一个通道的32 * 32值?或3个频道32 * 32 * 3?
并且可以用matlab绘制32 * 32吗?或3张32 * 32通道的3张图片?
答案 0 :(得分:1)
通常,您使用imshow
命令显示单通道(灰度)或多通道(彩色)的图像。如果您描述的方式中存储了多张图像,则需要索引特定的(灰度或彩色)图像(或彩色通道),并且可能需要使用squeeze
命令来删除长度为1的尺寸可能会导致imshow
出现问题。
请使用一些模型数据查看以下代码段:
% Mock-up data.
A = uint8(round(255 * rand(1000, 32, 32, 3)));
% Select I-th image.
I = 25;
figure(1);
% Show I-th RGB image.
subplot(2, 2, 1);
imshow(squeeze(A(I, :, :, :)));
% Show I-th red channel image.
subplot(2, 2, 2);
imshow(squeeze(A(I, :, :, 1)));
% Show I-th green channel image.
subplot(2, 2, 3);
imshow(squeeze(A(I, :, :, 2)));
% Show I-th blue channel image.
subplot(2, 2, 4);
imshow(squeeze(A(I, :, :, 3)));
输出: