imtranslate

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

Описание

пример

B = imtranslate(A,translation) переводит отображают A вектором сдвига, заданным в translation. Если A имеет больше чем две размерности и translation двухэлементный вектор, imtranslate применяет 2D перевод в 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
imshow(J);
title('Translated Image');
set(gca,'Visible','on');

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

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
imshow(J);
title('Full Translated Image');
set(gca,'Visible','on');

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

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

Примените перевод в этих 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);

imshow(axialSliceTranslated);

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

свернуть все

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

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

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

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

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

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

ЗначениеОписание
'cubic'Кубичная интерполяция.

Примечание

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

'linear'Линейная интерполяция
'nearest'

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

Типы данных: 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 использование заполняет значения для выходных пикселей, когда преобразованное местоположение соответствующей инверсии во входном изображении полностью вне входных границ изображения.

  • Если A 2D, FillValues должен быть скаляр.

  • Если A 3-D и translation трехэлементный вектор, FillValues должен быть скаляр.

  • Если A N-D и translation двухэлементный вектор, FillValues может быть или скаляр или массив, размер которого совпадает с размерностями 3 к N A. Например, если A uint8 Изображение RGB, которое является 200 200 3, FillValues может быть скаляр или массив 3 на 1.

  • Если A 4-D, FillValues может быть скаляр или массив. Например, если A 200 200 3 10, затем FillValues может быть скаляр или 3 10 массив.

    Некоторый пример заполняет значения:

    'FillValue' Описание
    0 Заполните с черным цветом
    [0;0;0] Заполните с черным цветом
    255Заполните с белым
    [255;255;255]Заполните с белым
    [0;0;255]Заполните с синим
    [255;255;0]Заполните с желтым

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

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

свернуть все

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

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

Советы

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

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

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

Введенный в R2014a