Contenido principal

imrotate3

Rotar una imagen volumétrica 3D en escala de grises

Descripción

B = imrotate3(V,angle,W) rota el volumen 3D V angle grados en sentido contrario a las agujas del reloj en torno a un eje que pasa por el origen [0 0 0]. W es un vector de 1 por 3 que especifica la dirección del eje de rotación en un espacio 3D. De forma predeterminada, imrotate3 establece los valores de los vóxeles de B que están fuera de los límites del volumen rotado en 0.

ejemplo

B = imrotate3(V,angle,W,method) también especifica el método de interpolación.

B = imrotate3(V,angle,W,method,bbox) también especifica el tamaño del volumen de salida, bbox. Si especifica "crop", imrotate3 hace que el volumen de salida sea del mismo tamaño que el volumen de entrada. Si especifica "loose", imrotate3 hace que el volumen de salida sea lo suficientemente grande como para incluir la totalidad del volumen rotado.

B = imrotate3(___,"FillValues",fillValues) establece los valores de relleno utilizados para los píxeles de salida sin un píxel correspondiente en la imagen de entrada.

Ejemplos

contraer todo

Cargue y muestre una imagen volumétrica 3D en escala de grises.

load("mri");
vol = squeeze(D);
volshow(vol);

Rote el volumen 90 grados alrededor del eje Z.

volRot = imrotate3(vol,90,[0 0 1],"nearest","loose");

Muestre el volumen de salida rotado. También puede explorar el volumen en la app Volume Viewer.

volshow(volRot);

Argumentos de entrada

contraer todo

Volumen que se desea rotar, especificado como arreglo numérico 3D, arreglo lógico 3D o arreglo categórico 3D.

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

Ángulo de rotación en grados, especificado como escalar numérico. Para rotar el volumen en el sentido de las agujas del reloj, especifique un valor negativo para angle. imrotate3 hace que el volumen de salida B sea lo suficientemente grande como para contener todo el volumen 3D rotado.

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

Dirección del eje de rotación en el espacio 3D en coordenadas cartesianas, especificado como vector numérico de 1 por 3.

Si desea especificar la dirección del eje de rotación en coordenadas esféricas, utilice sph2cart para convertir los valores a coordenadas cartesianas antes de pasarlos a imrotate3.

Ejemplo: [0 0 1] rota el volumen alrededor del eje Z

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

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

MétodoDescripción
"nearest"

Interpolación del vecino más cercano. Al vóxel de salida se le asigna el valor del vóxel en el que cae el punto. No se tienen en cuenta otros vó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.

"linear"

Interpolación trilineal.

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

"cubic"

Interpolación tricúbica.

Nota

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

Tipos de datos: char | string

Tamaño del volumen de salida, especificado como uno de los siguientes valores.

MétodoDescripción
"crop"

Hace que el volumen de salida sea del mismo tamaño que el volumen de entrada, recortando el volumen rotado para que encaje.

"loose"

Hace que el volumen de salida sea lo suficientemente grande como para contener todo el volumen rotado. Normalmente, el volumen rotado es más grande que el volumen de entrada.

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 siguientes valores. imrotate3 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.

Tipo de imagen

Formato de los valores de relleno

Imagen numérica o imagen lógica
  • Escalar numérico. El valor de relleno predeterminado de las imágenes numéricas y lógicas es 0.

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

  • missing, que corresponde a la categoría <undefined>. missing es el valor de relleno predeterminado para las imágenes categóricas. Para obtener más información, consulte missing.

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

Argumentos de salida

contraer todo

Volumen rotado, devuelto como arreglo numérico, lógico o categórico del mismo tipo de datos que el volumen de entrada, V.

Sugerencias

  • imrotate3 asume que el volumen de entrada V está centrado en el origen [0 0 0]. Si el volumen no está centrado en el origen, utilice imtranslate para trasladar el volumen a [0 0 0] antes de utilizar imrotate3. Puede volver a trasladar el volumen de salida B a la posición original con el vector de traslación opuesto.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2017a

expandir todo