randomAffine2d
Crear una transformación afín 2D aleatoria
Descripción
crea un objeto tform
= randomAffine2daffinetform2d
que realiza una transformación de identidad.
especifica el tipo de transformación afín utilizando argumentos nombre-valor.tform
= randomAffine2d(Name,Value
)
Ejemplos
Rotar una imagen en un ángulo aleatorio
Lea y muestre una imagen.
I = imread("kobi.png");
imshow(I)
Cree un objeto de transformación afín 2D que rote imágenes. La función randomAffine2d
toma el ángulo de rotación aleatoriamente a partir de una distribución uniforme continua dentro del intervalo [35, 55] grados.
tform1 = randomAffine2d(Rotation=[35 55]);
Rote la imagen y muestre el resultado.
J = imwarp(I,tform1); imshow(J)
El objeto de transformación, tform1
, rota todas las imágenes en la misma proporción. Para rotar una imagen en una proporción distinta a la seleccionada al azar, cree una nueva transformación geométrica.
tform2 = randomAffine2d(Rotation=[-10 10]); J2 = imwarp(I,tform2); imshow(J2)
Rotar una imagen aleatoriamente con intervalo de rotación personalizado
Lea y muestre una imagen.
I = imread("sherlock.jpg");
imshow(I)
Cree un objeto de transformación afín 2D que rote imágenes. Para seleccionar un ángulo de rotación de un intervalo personalizado, especifique el argumento nombre-valor Rotation
como un identificador de función. En este ejemplo se especifica una función denominada myrange
(definida al final del ejemplo) que selecciona un ángulo entre dos intervalos disjuntos.
tform = randomAffine2d(Rotation=@myrange);
Rote la imagen y muestre el resultado.
J = imwarp(I,tform); imshow(J)
Función de apoyo
En este ejemplo se define la función myrange
que primero selecciona aleatoriamente uno de dos intervalos (-10, 10) y (170, 190) con la misma probabilidad. Dentro del intervalo seleccionado, la función devuelve un único número aleatorio de una distribución uniforme.
function angle = myrange() if randi([0 1],1) a = -10; b = 10; else a = 170; b = 190; end angle = a + (b-a).*rand(1); end
Argumentos de entrada
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.
Ejemplo: tform = randomAffine2d(XReflection=true)
En las versiones anteriores a la R2021a, use comas para separar cada nombre y valor, y encierre Name
entre comillas.
Ejemplo: tform = randomAffine2d("XReflection",true)
XReflection
— Reflexión horizontal aleatoria
false
(predeterminado) | true
Reflexión horizontal aleatoria, especificada como false
o true
. Cuando XReflection
es true
(1
), la transformación tform
refleja imágenes horizontalmente con un 50% de probabilidad. De forma predeterminada, la transformación no refleja imágenes en dirección horizontal.
YReflection
— Reflexión vertical aleatoria
false
(predeterminado) | true
Reflexión vertical aleatoria, especificada como false
o true
. Cuando YReflection
es true
(1
), la transformación tform
refleja imágenes verticalmente con un 50% de probabilidad. De forma predeterminada, la transformación no refleja imágenes en dirección vertical.
Rotation
— Intervalo de rotación
[0 0]
(predeterminado) | Vector numérico de 2 elementos | identificador de función
Intervalo de rotación, en grados, aplicado a la imagen de entrada, especificado como una de las siguientes opciones.
Un vector numérico de 2 elementos. El segundo elemento debe ser mayor o igual que el primero. El ángulo de rotación se elige de forma aleatoria a partir de una distribución uniforme continua dentro del intervalo especificado.
Un identificador de función. La función no debe aceptar argumentos de entrada y devolver el ángulo de rotación como escalar numérico. Use un identificador de función para elegir ángulos de rotación de un intervalo disjunto o use una distribución de probabilidad no uniforme. Para obtener más información sobre los identificadores de función, consulte Crear un identificador de función.
De forma predeterminada, la transformación tform
no rota imágenes.
Ejemplo: [-45 45]
Scale
— Intervalo de escalado uniforme
[1 1]
(predeterminado) | Vector numérico de 2 elementos | identificador de función
Intervalo de escalado uniforme (isotrópico) aplicado a la imagen de entrada, especificado como uno de los siguientes elementos.
Un vector numérico de 2 elementos. El segundo elemento debe ser mayor o igual que el primero. El factor de escala se elige de forma aleatoria a partir de una distribución uniforme continua dentro del intervalo especificado.
Un identificador de función. La función no debe aceptar argumentos de entrada y devolver el factor de escala como escalar numérico. Use un identificador de función para elegir factores de escala de un intervalo disjunto o use una distribución de probabilidad no uniforme. Para obtener más información sobre los identificadores de función, consulte Crear un identificador de función.
De forma predeterminada, la transformación tform
no escala imágenes.
Ejemplo: [0.5 4]
XShear
— Intervalo de sesgo horizontal
[0 0]
(predeterminado) | Vector numérico de 2 elementos | identificador de función
Intervalo de sesgo horizontal aplicado a la imagen de entrada, especificado como uno de los siguientes elementos. El sesgo se mide como un ángulo en grados y está dentro del intervalo (-90, 90).
Un vector numérico de 2 elementos. El segundo elemento debe ser mayor o igual que el primero. El ángulo de sesgo horizontal se elige de forma aleatoria a partir de una distribución uniforme continua dentro del intervalo especificado.
Un identificador de función. La función no debe aceptar argumentos de entrada y devolver el ángulo de sesgo horizontal como escalar numérico. Use un identificador de función para elegir ángulos de sesgo horizontal de un intervalo disjunto o use una distribución de probabilidad no uniforme. Para obtener más información sobre los identificadores de función, consulte Crear un identificador de función.
De forma predeterminada, la transformación tform
no estira imágenes en dirección horizontal.
Ejemplo: [0 45]
YShear
— Intervalo de sesgo vertical
[0 0]
(predeterminado) | Vector numérico de 2 elementos | identificador de función
Intervalo de sesgo vertical aplicado a la imagen de entrada, especificado como uno de los siguientes elementos. El sesgo se mide como un ángulo en grados y está dentro del intervalo (-90, 90).
Un vector numérico de 2 elementos. El segundo elemento debe ser mayor o igual que el primero. El ángulo de sesgo vertical se elige de forma aleatoria a partir de una distribución uniforme continua dentro del intervalo especificado.
Un identificador de función. La función no debe aceptar argumentos de entrada y devolver el ángulo de sesgo vertical como escalar numérico. Use un identificador de función para elegir ángulos de sesgo vertical de un intervalo disjunto o use una distribución de probabilidad no uniforme. Para obtener más información sobre los identificadores de función, consulte Crear un identificador de función.
De forma predeterminada, la transformación tform
no estira imágenes en dirección vertical.
Ejemplo: [0 45]
XTranslation
— Intervalo de traslación horizontal
[0 0]
(predeterminado) | Vector numérico de 2 elementos | identificador de función
Intervalo de traslación horizontal aplicado a la imagen de entrada, especificado como uno de los siguientes elementos. La distancia de traslación se mide en píxeles.
Un vector numérico de 2 elementos. El segundo elemento debe ser mayor o igual que el primero. La distancia de traslación horizontal se elige de forma aleatoria a partir de una distribución uniforme continua dentro del intervalo especificado.
Un identificador de función. La función no debe aceptar argumentos de entrada y devolver la distancia de traslación horizontal como escalar numérico. Use un identificador de función para elegir distancias de traslación horizontal de un intervalo disjunto o use una distribución de probabilidad no uniforme. Para obtener más información sobre los identificadores de función, consulte Crear un identificador de función.
De forma predeterminada, la transformación tform
no traslada imágenes en dirección horizontal.
Ejemplo: [-5 5]
YTranslation
— Intervalo de traslación vertical
[0 0]
(predeterminado) | Vector numérico de 2 elementos | identificador de función
Intervalo de traslación vertical aplicado a la imagen de entrada, especificado como uno de los siguientes elementos. La distancia de traslación se mide en píxeles.
Un vector numérico de 2 elementos. El segundo elemento debe ser mayor o igual que el primero. La distancia de traslación vertical se elige de forma aleatoria a partir de una distribución uniforme continua dentro del intervalo especificado.
Un identificador de función. La función no debe aceptar argumentos de entrada y devolver la distancia de traslación vertical como escalar numérico. Use un identificador de función para elegir distancias de traslación vertical de un intervalo disjunto o use una distribución de probabilidad no uniforme. Para obtener más información sobre los identificadores de función, consulte Crear un identificador de función.
De forma predeterminada, la transformación tform
no traslada imágenes en dirección vertical.
Ejemplo: [-5 5]
Argumentos de salida
tform
— Transformación afín
objeto affinetform2d
Transformación afín, devuelta como objeto affinetform2d
.
Historial de versiones
Introducido en R2019bR2022b: Devuelve tform
como objeto affinetform2d
A partir de la versión R2022b, la mayoría de funciones de Image Processing Toolbox™ crean y realizan transformaciones geométricas utilizando la convención de la premultiplicación. En consecuencia, la función randomAffine2d
ahora devuelve el argumento de salida tform
como un objeto affinetform2d
, que admite la convención de premultiplicación. Antes, la función devolvía tform
como un objeto affine2d
, que admite la convención de posmultiplicación. Para obtener más información, consulte Migrate Geometric Transformations to Premultiply Convention.
Consulte también
imwarp
| randomWindow2d
| centerCropWindow2d
Temas
- Augment Images for Deep Learning Workflows (Deep Learning Toolbox)
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)