Warper

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

Описание

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
Для просмотра документации необходимо авторизоваться на сайте