exponenta event banner

imtile

Объединение нескольких кадров изображения в одно прямоугольное мозаичное изображение

Описание

out = imtile(filenames) возвращает мозаичное изображение, содержащее изображения, указанные в filenames. filenames является строковым массивом n-by-1 или 1-by-n, символьным вектором или массивом ячеек символьных векторов. Если файлы находятся не в текущей папке или в папке по пути MATLAB ®, укажите полный путь. См. разделimread для получения дополнительной информации.

По умолчанию imtile упорядочивает изображения таким образом, что они примерно образуют квадрат, но их можно изменить с помощью дополнительных параметров. Изображения могут иметь различные размеры и типы.

  • Если указать индексированное изображение, то imtile преобразует его в RGB, используя карту цветов, имеющуюся в файле.

  • Если существует несоответствие типов данных между изображениями, то imtile масштабирует все изображения, чтобы они были double с использованием im2double функция.

out = imtile(I) возвращает мозаичное изображение, содержащее все кадры массива многокадровых изображений I. Массив многокадровых изображений может представлять собой последовательность двоичных, оттенков серого или цветных изображений.

out = imtile(images) возвращает мозаичное изображение, содержащее изображения, указанные в массиве ячеек images. imtile отображает пустые элементы массива ячеек как пустую плитку.

out = imtile(imds) возвращает мозаичное изображение, содержащее изображения, указанные в объекте ImageDatastore imds. Сведения о хранилищах данных изображений см. в разделе ImageDatastore.

out = imtile(X,map) обрабатывает все изображения в оттенках серого в X в качестве индексированных изображений и применяет указанную карту цветов map ко всем кадрам. X может быть массивом изображений в градациях серого (m-by-n-by-1-by-k), строковым массивом имен файлов или массивом ячеек векторов символов. Если X представляет имена файлов, map переопределяет любую внутреннюю карту цветов, присутствующую в файлах изображений.

out = imtile(___,Name,Value) возвращает настроенное мозаичное изображение в зависимости от значений необязательных пар «имя-значение параметра». Можно сокращать имена параметров, и регистр не имеет значения.

Примеры

свернуть все

Считывание нескольких изображений из файлов в рабочую область и создание мозаичного изображения, содержащего изображения. Отображение мозаичного изображения.

out = imtile({'peppers.png', 'ngc6543a.jpg'});
imshow(out);

Figure contains an axes. The axes contains an object of type image.

Используя набор данных, содержащий несколько изображений, поместите изображения в сетку.

Загрузите набор данных МРТ.

load mri
out = imtile(D, map);
imshow(out);

Figure contains an axes. The axes contains an object of type image.

Создайте мозаичное изображение, содержащее только первые восемь изображений в наборе данных. Используйте 'GridSize' для размещения изображений в сетке 2 на 4.

out = imtile(D, map, 'Frames', 1:8, 'GridSize', [2 4]);
figure;
imshow(out);

Figure contains an axes. The axes contains an object of type image.

Считывание изображения RGB в рабочую область.

imRGB = imread('peppers.png');

Создайте мозаичное изображение, содержащее каждую из трех плоскостей изображения RGB. Отображение мозаичного изображения.

out = imtile(imRGB);
imshow(out)

Figure contains an axes. The axes contains an object of type image.

В хранилище данных изображения создайте и настройте мозаичное изображение.

Создание хранилища данных образа, содержащего все файлы с расширением 'tif' или 'png' в указанной папке.

fileFolder = fullfile(matlabroot,'toolbox','matlab','imagesci');
imds = imageDatastore(fileFolder,'FileExtensions',{'.tif','.png'});

Создайте мозаичное изображение, содержащее изображения в хранилище данных.

out1 = imtile(imds);
imshow(out1);

Figure contains an axes. The axes contains an object of type image.

Используйте 'BorderSize' и "BackgroundColor' параметры для добавления синей границы к мозаичному изображению.

out2 = imtile(imds, 'BorderSize', 10, 'BackgroundColor', 'b');
figure;
imshow(out2);

Figure contains an axes. The axes contains an object of type image.

Входные аргументы

свернуть все

Имена файлов, содержащих изображения, указанные как строковый массив n-by-1 или 1-by-n, символьный вектор или массив ячеек символьных векторов.

Многокадровое изображение, указанное как последовательность двоичных изображений, изображений в градациях серого или цветных изображений. I может быть массивом m-by-n-by-k или m-by-n-n-by-1-by-k, или последовательностью двоичных, оттенков серого или цветных изображений. Двоичная последовательность изображений или последовательность изображений в градациях серого должна быть массивом m-by-n-by-k или m-by-n-by-1-by-k. Последовательность изображения truecolor должна быть массивом m-by-n-by-3-by-k.

Список изображений, заданных как массив ячеек n-by-1 или 1-by-n числовых матриц. Массив ячеек может содержать числовые матрицы размера m-by-n или m-by-n-by-3.

Хранилище данных изображения, указанное как объект ImageDatastore.

Индексированное изображение и связанная с ним карта цветов, заданная как 2-D числовой массив (изображение) и n-by-3 числовой массив класса double (colormap). n - количество цветов в карте цветов.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: tiled_image = imtile({'peppers.png', 'ngc6543a.jpg'},'BackgroundColor','g');

Цвет фона, определяемый как разделенная запятыми пара, состоящая из 'BackgroundColor' и MATLAB ColorSpec (Color Specification). imtile функция заполняет этим цветом все пробелы, включая пробелы, указанные BorderSize. Если указан цвет фона, imtile функция визуализирует выходные данные как изображение RGB.

Пример: 'green'

Пример: 'g'

Пример: [0 1 0]

Заполнение вокруг каждого миниатюры, указанного как пара, разделенная запятыми, состоящая из 'BorderSize' и числовой скалярный или вектор 1 на 2 вида [brows bcols]. imtile накладывает границы с цветом фона.

Кадры для включения, указанные как разделенная запятыми пара, состоящая из 'Frames' и числовой массив или логическую маску. imtile функция интерпретирует значения как индексы в массиве изображений или в массиве ячеек. В следующих примерах создается мозаичное изображение, содержащее первые три кадра изображения.

Пример: out = imtile(I,'Frames',1:3);

Пример: out = imtile(I,'Frames',[true true true]);

Количество строк и столбцов миниатюр в мозаичном изображении, указанное как разделенная запятыми пара, состоящая из 'GridSize' и двухэлементный вектор вида [nrows ncols]. nrows определяет количество строк в сетке и ncols указывает количество столбцов в сетке. Использовать NaNs или Infs, чтобы иметь imtile рассчитать размер в определенном измерении способом, включающим все изображения.

  • Если 'GridSize' является [2 NaN], то imtile создает мозаичное изображение с двумя строками и количеством столбцов, необходимым для включения всех изображений.

  • Если оба элемента NaN или Inf, то imtile вычисляет размер сетки для формирования квадрата. imtile возвращает изображения по горизонтали между столбцами.

  • При несоответствии GridSize и количество изображений (кадров), imtile создает мозаичное изображение на основе GridSize.

Размер миниатюр, указанный как разделенная запятыми пара, состоящая из 'ThumbnailSize' и двухэлементный вектор вида [trows tcols], в пикселях. imtile функция сохраняет соотношение сторон исходного изображения, заполняя границу нулями.

  • Если указать NaN или Inf, то imtile функция автоматически вычисляет соответствующее значение для сохранения соотношения сторон первого изображения.

  • Если указан пустой массив ([]), то imtile функция использует полный размер первого изображения в качестве размера миниатюры.

Выходные аргументы

свернуть все

Мозаичное выходное изображение, возвращаемое в виде числового массива.

См. также

|

Представлен в R2018b