imtranslate

Перевод изображения

Описание

пример

B = imtranslate(A,translation) перемещает изображение A вектором 2-D или 3-D преобразования, заданным в translation.

Если A имеет более чем две размерности и translation является вектором с 2 элементами, затем imtranslate применяет перемещение 2-D к каждой плоскости A.

[B,RB] = imtranslate(A,RA,translation) перемещает пространственно-ссылочное изображение A со связанным с ним пространственным объектом привязки RA. Вектор преобразования, translation, находится в мировой системе координат. Функция возвращает переведенное пространственно-ссылочное изображение B, со связанным с ним пространственным объектом привязки, RB.

___ = imtranslate(___,method) перемещает изображение A, с использованием метода интерполяции, заданного method.

пример

___ = imtranslate(___,Name,Value) переводит вход изображение с помощью пар "имя-значение" для управления различными аспектами перевода.

Примеры

свернуть все

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

I = imread('pout.tif');

Переведите изображение.

J = imtranslate(I,[25.3, -10.1],'FillValues',255);

Отобразите оригинальное изображение и переведенное изображение.

figure
imshow(I);
title('Original Image');
set(gca,'Visible','on');

Figure contains an axes. The axes with title Original Image contains an object of type image.

figure
imshow(J);
title('Translated Image');
set(gca,'Visible','on');

Figure contains an axes. The axes with title Translated Image contains an object of type image.

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

I = imread('pout.tif');

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

J = imtranslate(I,[25.3, -10.1],'FillValues',255,'OutputView','full');

Отобразите оригинальное изображение и переведенное изображение.

figure
imshow(I);
title('Original Image');
set(gca,'Visible','on');

Figure contains an axes. The axes with title Original Image contains an object of type image.

figure
imshow(J);
title('Full Translated Image');
set(gca,'Visible','on');

Figure contains an axes. The axes with title Full Translated Image contains an object of type image.

Загрузите данные МРТ в рабочую область и отобразите их.

s = load('mri');
mriVolume = squeeze(s.D);
sizeIn = size(mriVolume);
hFigOriginal = figure;
hAxOriginal  = axes;
slice(double(mriVolume),sizeIn(2)/2,sizeIn(1)/2,sizeIn(3)/2);
grid on, shading interp, colormap gray

Figure contains an axes. The axes contains 3 objects of type surface.

Применить перемещение в направлении X, Y.

mriVolumeTranslated = imtranslate(mriVolume,[40,30,0],'OutputView','full');

Визуализируйте перемещение путем просмотра осевой плоскости разбиения, взятого через центр объема. Обратите внимание на сдвиг в направлениях X и Y.

sliceIndex = round(sizeIn(3)/2);
axialSliceOriginal   = mriVolume(:,:,sliceIndex);
axialSliceTranslated = mriVolumeTranslated(:,:,sliceIndex);

imshow(axialSliceOriginal);

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

imshow(axialSliceTranslated);

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

Входные параметры

свернуть все

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

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical | categorical

Пространственная ссылочная информация, сопоставленная с входным изображением A, заданный как imref2d или imref3d пространственный объект привязки.

Вектор преобразования, заданный как 2-элементный числовой вектор [Tx Ty] или 3-элементный числовой вектор [Tx Ty Tz]. Значения могут быть дробными.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Метод интерполяции, заданный одним из следующих значений.

Значение

Описание

'nearest'

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

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

'bilinear'

Линейная интерполяция.

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

'bicubic'

Кубическая интерполяция.

Примечание

Кубическая интерполяция может привести к значениям пикселей вне исходной области значений.

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

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

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

Пример: mriVolumeTranslated = imtranslate(mriVolume,[40,30,0],'OutputView','full');

Выходные пределы мира, заданные как разделенная разделенными запятой парами, состоящая из 'OutputView' и одно из следующих значений.

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

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

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

Значение заливки по умолчанию для числовых и логических изображений 0. Значение заливки по умолчанию для категориальных изображений missing, что соответствует <undefined> категория.

Тип изображения

Перемещение размерности

Формат значений заливки

2-D полутоновое или логическое изображение2-D
  • Числовой скаляр

2-D цветное изображение или 2-D мультиспектральное изображение2-D
  • Числовой скаляр

  • c числовой вектор -элемент, задающий значение заливки для каждого из c каналов. Количество каналов, c, составляет 3 для цветных изображений.

Серия p 2-D изображений2-D

  • Числовой скаляр

  • c -by p числовую матрицу. Количество каналов, c, составляет 1 для полутоновых изображений и 3 для цветных изображений.

N -D-изображение2-D
  • Числовой скаляр

  • Числовой массив, размер которого соответствует размерностям 3-к- N входного изображения A. Для примера, если A 200 на 200 на 10 на 3, тогда FillValues может быть массивом 10 на 3.

3-D полутоновое или логическое изображение3-D
  • Числовой скаляр

Категориальное изображение2-D или 3-D
  • Допустимая категория в изображении, заданная как строковый скаляр или вектор символов.

  • missing, что соответствует <undefined> категория. Для получения дополнительной информации см. missing.

Пример: 255 заполняет uint8 изображение с белыми пикселями

Пример: 1 заполняет double изображение с белыми пикселями

Пример: [0 1 0] заполняет double цветное изображение с зелеными пикселями

Пример: [0 1 0; 0 1 1]', для серии из двух double цветные изображения, заполняет первое изображение зелеными пикселями и второе изображение голубыми пикселями

Пример: "vehicle" заполняет категориальное изображение категорией « транспортным средством»

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | char

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

свернуть все

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

Пространственная ссылочная информация, сопоставленная с выходным изображением, возвращается как imref2d или imref3d пространственный объект привязки.

Совет

  • imtranslate оптимизируется для интегрально оцененных translation векторы.

  • Когда 'OutputView' является 'full' и translation - дробное число пикселей, затем imtranslate расширяет пределы мира выходного пространственного объекта привязки до ближайшего шага полного пикселя. imtranslate делает это так, чтобы оно содержало как оригинальное, так и переведенное изображения в том же разрешении, что и входе изображение. Дополнительный объем изображения в каждом добавляется с одной стороны изображения в направлении, которое указывает вектор преобразования. Для примера, когда translation является дробным и положительным как в X, так и в Y, затем imtranslate расширяет максимальное число XWorldLimits и YWorldLimits чтобы окружить 'full' ограничивающий прямоугольник в разрешении входного изображения.

Расширенные возможности

.
Введенный в R2014a