Main Content

imtranslate

Trasladar una imagen

Descripción

ejemplo

B = imtranslate(A,translation) traslada la imagen A mediante el vector de traslación 2D o 3D especificado en translation.

Si A tiene más de dos dimensiones y translation es un vector de 2 elementos, imtranslate aplica la traslación 2D en cada plano de A.

[B,RB] = imtranslate(A,RA,translation) traslada la imagen con referencia espacial A con su objeto de referencia espacial asociado RA. El vector de traslación translation está en el sistema de coordenadas mundial. La función devuelve la imagen con referencia espacial trasladada B con su objeto de referencia espacial asociado RB.

___ = imtranslate(___,method) traslada la imagen A utilizando el método de interpolación que especifica method.

ejemplo

___ = imtranslate(___,Name,Value) traslada la imagen de entrada utilizando pares nombre-valor para controlar distintos aspectos de la traslación.

Ejemplos

contraer todo

Lea una imagen en el espacio de trabajo.

I = imread('pout.tif');

Traslade la imagen.

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

Muestre la imagen original y la imagen trasladada.

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

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

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

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

Lea una imagen en el espacio de trabajo.

I = imread('pout.tif');

Traslade la imagen. Utilice el parámetro OutputView para especificar que desea que la imagen trasladada completa sea visible.

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

Muestre la imagen original y la imagen trasladada.

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

Figure contains an axes object. The axes object 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 object. The axes object with title Full Translated Image contains an object of type image.

Cargue los datos de una RM en el espacio de trabajo y muéstrelos.

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 object. The axes object contains 3 objects of type surface.

Aplique una traslación en la dirección X, Y.

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

Visualice la traslación viendo el plano del corte axial tomado a través del centro del volumen. Observe el cambio en las direcciones X e Y.

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

imshow(axialSliceOriginal);

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

imshow(axialSliceTranslated);

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

Argumentos de entrada

contraer todo

Imagen que se desea trasladar, especificada como arreglo numérico, arreglo lógico o arreglo categórico.

Tipos de datos: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical | categorical

Información de referencia espacial asociada a la imagen de entrada A, especificada como un objeto de referencia espacial imref2d o imref3d.

Vector de traslación, especificado como vector numérico de 2 elementos [Tx Ty] o vector numérico de 3 elementos [Tx Ty Tz]. Los valores pueden ser fraccionarios.

Tipos de datos: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Método de interpolación, especificado como uno de estos valores.

Valor

Descripción

"nearest"

Interpolación del vecino más cercano. Al píxel de salida se le asigna el valor del píxel en el que cae el punto. No se tienen en cuenta otros píxeles.

La interpolación del vecino más cercano es el único método compatible con las imágenes categóricas y es el método predeterminado para las imágenes de este tipo.

"bilinear"

Interpolación lineal.

La interpolación lineal es el método predeterminado para las imágenes numéricas y lógicas.

"bicubic"

Interpolación cúbica.

Nota

La interpolación cúbica puede producir valores de píxeles que se sitúan fuera del intervalo original.

Tipos de datos: char | string

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos de nombre-valor deben aparecer después de otros argumentos. Sin embargo, el orden de los pares no importa.

En las versiones anteriores a la R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: mriVolumeTranslated = imtranslate(mriVolume,[40,30,0],"OutputView","full");

Límites mundiales de salida, especificados como uno de estos valores:

ValorDescripción
"same"Los límites mundiales de salida son los mismos que los de la imagen de entrada.
"full"Los límites mundiales de salida son el rectángulo delimitador que incluye tanto la imagen de entrada como la imagen de salida trasladada.

Tipos de datos: char | string

Valores de relleno utilizados para los píxeles de salida fuera de la imagen de entrada, especificados como uno de los valores de la tabla. imtranslate utiliza valores de relleno para los píxeles de salida cuando la ubicación transformada inversa correspondiente en la imagen de entrada está completamente fuera de los límites de la imagen de entrada.

El valor de relleno predeterminado de las imágenes numéricas y lógicas es 0. El valor de relleno predeterminado de las imágenes categóricas es missing, que corresponde a la categoría <undefined>.

Tipo de imagen

Dimensión de la traslación

Formato de los valores de relleno

Imagen 2D en escala de grises o lógica2D
  • Escalar numérico

Imagen 2D en escala de grises o 2d multiespectral2D
  • Escalar numérico

  • Vector numérico de c elementos que especifica un valor de relleno para cada uno de los c canales. El número de canales, c, es 3 para las imágenes en color.

Serie de p imágenes 2D2D

  • Escalar numérico

  • Matriz numérica de c por p. El número de canales, c, es 1 para las imágenes en escala de grises y 3 para las imágenes en color.

Imagen N D2D
  • Escalar numérico

  • Matriz numérica cuyo tamaño coincide con las dimensiones 3 a N de la imagen de entrada A. Por ejemplo, si A es 200 por 200 por 10 por 3, entonces FillValues puede ser una matriz de 10 por 3.

Imagen 3D en escala de grises o lógica3D
  • Escalar numérico

Imagen categórica2D o 3D
  • Categoría válida de la imagen, especificada como escalar de cadena o vector de caracteres.

  • missing, que corresponde a la categoría <undefined>. Para obtener más información, consulte missing.

Ejemplo: 255 rellena una imagen uint8 con píxeles blancos

Ejemplo: 1 rellena una imagen double con píxeles blancos

Ejemplo: [0 1 0] rellena una imagen en color double con píxeles verdes

Ejemplo: [0 1 0; 0 1 1]', para una serie de dos imágenes en color, double rellena la primera imagen con píxeles verdes y la segunda con píxeles cian

Ejemplo: "vehicle" rellena una imagen categórica con la categoría "vehículo"

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | char

Argumentos de salida

contraer todo

Imagen trasladada, devuelta como arreglo numérico, lógico o categórico del mismo tipo de datos que la imagen de entrada A.

Información de referencia espacial asociada a la imagen de salida, devuelta como un objeto de referencia espacial imref2d o imref3d.

Sugerencias

  • imtranslate está optimizada para vectores de translation con valores integrales.

  • Cuando OutputView es "full" y translation es un número fraccionario de píxeles, imtranslate expande los límites mundiales del objeto de referencia espacial de salida hasta el incremento de píxel completo más cercano. imtranslate lo hace de tal forma que contiene tanto la imagen original como la trasladada con la misma resolución que la imagen de entrada. La extensión adicional de cada imagen se añade en un lado de la imagen, en la dirección a la que apunta el vector de traslación. Por ejemplo, cuando translation es fraccionaria y positiva tanto en X como en Y, imtranslate expande el máximo de XWorldLimits e YWorldLimits para delimitar el rectángulo delimitador "full" con la misma resolución que la imagen de entrada.

Capacidades ampliadas

Historial de versiones

Introducido en R2014a

expandir todo