我必须在 MATLAB 或 Python 的通道维度中连接两个图像。假设我们采用两个灰度输入图像,其中每个图像具有例如维度[1, 1, 28, 28](即 1 个图像、1 个通道、28x28 分辨率)。我们如何将它们连接成一张大小的图像[1, 2, 28, 28]?
3 回答
函数式编程
TA贡献1807条经验 获得超9个赞
在 MATLAB 中,您通常会cat
为此使用以下命令:
bigMat = cat(dimNo, matA, matB); % dimNo can be 1, 2, ...
但是,在沿2串联的情况下第二维度,也可以简单地使用[... ; ...]
:
bigMat = [matA; matB];
(相当于vertcat
函数)。
如果您事先知道要连接多少个矩阵(即结果的最终大小),您应该使用 eg 预先分配您的矩阵bigMat = zeros(1, N, 28, 28)
,然后将每个图像放在与上一个答案类似的正确位置 -
img1(:,n,:,:) = img2; % where n is 1..N, and not anything like end+1
我们不想使用,end+1
因为这会导致与不断重新分配越来越大的数组和每次复制数组的所有内容相关的性能损失。
添加回答
举报
0/150
提交
取消