MATLAB: изменение ориентации монтажа 2 изображений
Я пытаюсь использовать MATLAB, чтобы открыть монтаж всего из двух изображений, расположенных сверху и снизу. По умолчанию MATLAB имеет ориентацию влево / вправо. Я пробовал монтаж (images, 'Size', [2 1]), но это все равно дает мне ориентацию влево / вправо, но просто добавляет пустую строку внизу.
1 ответ
montage
по умолчанию дает вам левую / правую монтаж, и вы не можете изменить это. Если вы хотите разместить изображения друг над другом, предполагая, что изображения одного размера, используйте cat
, Предполагая, что ваши изображения называются A
а также B
Просто сделайте это:
C = cat(1, A, B);
imshow(C);
Если, однако, ваши изображения имеют разный размер, то мы можем убедиться, что столбцы имеют одинаковый размер, создать новые изображения, обнулить столбцы, а затем сложить их друг на друга. Предполагая, что оба A
а также B
имеют одинаковое количество каналов:
rows1 = size(A, 1);
cols1 = size(A, 2);
rows2 = size(B, 1);
cols2 = size(B, 2);
C = zeros(rows1 + rows2, max(cols1, cols2), size(A, 3), class(A));
C(1:rows1, 1:cols1, :) = A;
C(rows1+1:end, 1:cols2, :) = B;
imshow(C);
Первые четыре строки определяют строки и столбцы каждого изображения. Затем мы создаем пустое изображение, где количество строк - это просто сумма двух изображений, а количество столбцов - большее из двух изображений. Это необходимо для размещения изображения самого большого размера вдоль колонн. Мы также уверены, что мы приводим вывод к тому же классу, что и A
(или же B
при условии того же типа). Как только мы закончим, вы просто поместите первое изображение вверху C
затем второе изображение внизу C
смещение на rows1
(количество строк для A
).