Warper

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

Описание

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 пространственный объект привязки.

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

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

Свойства

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

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

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

Метод интерполяции в виде 'linear'самый близкий, или '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 object. The axes object contains an object of type image.

Советы

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

Алгоритмы

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

Смотрите также

Функции

Объекты

Введенный в R2017b