Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

randomAffine2d

Crear una transformación afín 2D aleatoria

Descripción

tform = randomAffine2d crea un objeto affinetform2d que realiza una transformación de identidad.

tform = randomAffine2d(Name,Value) especifica el tipo de transformación afín utilizando argumentos nombre-valor.

ejemplo

Ejemplos

contraer todo

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)

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

contraer todo

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)

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.

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.

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]

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]

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]

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]

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]

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

contraer todo

Transformación afín, devuelta como objeto affinetform2d.

Historial de versiones

Introducido en R2019b

expandir todo