Как я могу объединить изображения в одной матрице в MATLAB? - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть 64 изображения (их имена такие: 00001.jpg, ..., 00064.jpg).Я хочу создать матрицу с этими изображениями, которая даст следующий результат:

[img1 img2 ... img8
 img9 img10 ...img16
 ...
 img57 ........img64]

Я пробовал методы horzcat (), imtile (), montage (), но они дали мне результаты, которые я не сделалне хочуЯ ожидаю матрицу 8x8 с изображениями.Я хочу сделать выше программно, используя Matlab, но не смог найти никакого решения.Как я могу это сделать?Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Функция imtile - это то, что вы хотите. Это ваше ожидание размера 8x8, что неверно. Возьмите следующий пример.

A = magic(2);

>> imtile({A,A,A,A})

ans =

 1     3     1     3
 4     2     4     2
 1     3     1     3
 4     2     4     2

Поскольку imtile принимает ImageDatastore, проще всего сделать:

imds = imageDatastore(pathToYourImages)
tiledImage = imtile(imds);
0 голосов
/ 22 апреля 2019

Изображение - это, по сути, матрица.

Таким образом, вы объединяете 2 матрицы ( ссылка )

A = ones(1,4);
B = zeros(1,4);
C = [A B];  //Horizontal
D = [A; B]; //Vertical

Используйте эту логику для горизонтального соединения ваших матриц ипо вертикали.

Сказал, что вы должны знать о размере матрицы и ее проблемах несовпадения.

...