exponenta event banner

Сновальная машина

Эффективное применение одного и того же геометрического преобразования ко многим изображениям

Описание

A Warper объект применяет affine2d или projective2d геометрическое преобразование в изображения с определенным размером.

Создание

Описание

пример

w = images.geotrans.Warper(tform,inputSize) создает деформатор изображения из объекта геометрического преобразования tform и задает свойство InputSize.

w = images.geotrans.Warper(tform,inputRef) определяет систему координат входных изображений, inputRef.

w = images.geotrans.Warper(tform,inputRef,outputRef) определяет систему координат выходного изображения, outputRef. Этот синтаксис может быть использован для улучшения производительности путем ограничения применения геометрического преобразования конкретной областью вывода, представляющей интерес.

w = images.geotrans.Warper(sourceX,sourceY) задает координаты входного изображения, sourceX и sourceY, требуется для выполнения геометрического преобразования.

w = images.geotrans.Warper(___,Name,Value) задает свойства Interpolation и FillValue, используя один или несколько аргументов пары имя-значение. Заключите каждое имя свойства в отдельные кавычки.

Например, warper = images.geotrans.Warper(tform,size(im),'FillValue',1) задает значение заливки, равное 1 для пикселов за пределами исходного изображения.

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

развернуть все

Геометрическое преобразование, указанное как affine2d или projective2d объект геометрического преобразования.

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

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

Координаты входного изображения, заданные как матрица 2-D того же размера, что и требуемое выходное изображение. Каждый индекс (x, y) в sourceX и sourceY указывает местоположение во входном изображении для соответствующего выходного пикселя.

Типы данных: single

Свойства

развернуть все

Размер входных изображений, определяемый как 2- или 3-элементный вектор положительных целых чисел.

Размер первых двух измерений выходного изображения, определяемый как 2-элементный вектор положительных целых чисел.

Метод интерполяции, указанный как 'linear', 'nearest', или 'cubic'.

Типы данных: char | string

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

Функции объекта

warpПрименение геометрического преобразования

Примеры

свернуть все

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

imds = imageDatastore(fullfile(matlabroot,'toolbox','images','imdata','AT*'));

Создайте геометрическое преобразование для поворота каждого изображения на 45 градусов и сжатия каждого изображения.

tform = affine2d([ 0.5*cos(pi/4) sin(pi/4)     0;
                  -sin(pi/4)     0.5*cos(pi/4) 0;
                   0             0             1]);

Создать Warper объект, задающий объект геометрического преобразования, tformи размер входных изображений.

im = readimage(imds,1);
warper = images.geotrans.Warper(tform,size(im));

Определите количество обрабатываемых изображений и предварительно распределите выходной массив.

numFiles = numel(imds.Files);
imr = zeros([warper.OutputSize 1 numFiles],'like',im);

Примените геометрическое преобразование к каждому входному изображению, вызвав warp функции Warper объект.

for ind = 1:numFiles
    im = read(imds);
    imr(:,:,1,ind) = warp(warper,im);
end

Визуализация выходных изображений. (Отключите предупреждающее сообщение о масштабировании изображений для отображения.)

warning('off','images:initSize:adjustingMag')
montage(imr);

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

Совет

  • Если входные изображения представляют собой RGB-изображения или 3-D изображения в градациях серого размера m-by-n-by-p, то warp применяет преобразование к каждому цветовому каналу или плоскости p независимо.

Алгоритмы

Warper оптимизирован для применения одинакового геометрического преобразования к пакету изображений одного размера. Warper эта оптимизация достигается путем разделения процесса деформации на два этапа: вычисление преобразованных координат (выполняется один раз) и интерполяция на изображении (выполняется для каждого изображения). По сравнению с imwarpэтот подход значительно ускоряет весь процесс для изображений малого и среднего размера с уменьшающейся отдачей для изображений большего размера.

См. также

Функции

Объекты

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