exponenta event banner

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 для цветных изображений.

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

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

  • Числовая матрица c-by-p. Число каналов c равно 1 для изображений в градациях серого и 3 для цветных изображений.

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

  • Числовой массив, размер которого соответствует размерам 3-to-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