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).

Другие вопросы по тегам