Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

randomAffine2d

Crear transformación afín 2D aleatoria

Descripción

tform = randomAffine2d crea un objeto con valores de propiedad predeterminados coherentes con la transformación de identidad.affine2d

ejemplo

tform = randomAffine2d(Name,Value) especifica el tipo de transformaciones afines mediante argumentos de par nombre-valor.

Ejemplos

contraer todo

Leer y mostrar una imagen.

I = imread('kobi.png'); imshow(I)

Cree un objeto de transformación que gire las imágenes.affine2d La función selecciona un ángulo de rotación aleatoriamente a partir de una distribución uniforme continua dentro del intervalo [35, 55] grados.randomAffine2d

tform1 = randomAffine2d('Rotation',[35 55]);

Gire la imagen y muestre el resultado.

J = imwarp(I,tform1); imshow(J)

El objeto de transformación , , gira todas las imágenes en la misma cantidad.tform1 Para rotar una imagen en una cantidad seleccionada aleatoriamente diferente, cree un nuevo objeto de transformación.affine2d

tform2 = randomAffine2d('Rotation',[-10 10]); J2 = imwarp(I,tform2); imshow(J2)

Leer y mostrar una imagen.

I = imread('sherlock.jpg'); imshow(I)

Cree un objeto de transformación que gire las imágenes.affine2d Para seleccionar un ángulo de rotación de un intervalo personalizado, especifique el argumento de par nombre-valor como identificador de función.'Rotation' En este ejemplo se especifica una función llamada (definida al final del ejemplo) que selecciona un ángulo desde dentro de dos intervalos separados.myrange

tform = randomAffine2d('Rotation',@myrange);

Gire la imagen y muestre el resultado.

J = imwarp(I,tform); imshow(J)

Función de apoyo

En este ejemplo se define la función que primero selecciona aleatoriamente uno de dos intervalos (-10, 10) y (170, 190) con la misma probabilidad.myrange 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 opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: tform = randomAffine2d('XReflection',true)

Reflexión horizontal aleatoria, especificada como el par separado por comas que consta de y o .'XReflection'falsetrue Cuando es ( ), la transformación refleja las imágenes verticalmente con un 50% de probabilidad.XReflectiontrue1tform De forma predeterminada, la transformación no refleja las imágenes en la dirección horizontal.

Reflexión vertical aleatoria, especificada como el par separado por comas que consta de y o .'YReflection'falsetrue Cuando es ( ), la transformación refleja las imágenes verticalmente con un 50% de probabilidad.YReflectiontrue1tform De forma predeterminada, la transformación no refleja las imágenes en la dirección vertical.

Rango de rotación, en grados, aplicado a la imagen de entrada, especificado como el par separado por comas que consta de y uno de los siguientes.'Rotation'

  • Vector numérico de 2 elementos. El segundo elemento debe ser mayor o igual que el primer elemento. El ángulo de rotación se selecciona aleatoriamente de una distribución uniforme continua dentro del intervalo especificado.

  • función. La función no debe aceptar ningún argumento de entrada y devolver el ángulo de rotación como un escalar numérico. Utilice un identificador de función para seleccionar ángulos de rotación a partir de un intervalo desarticulado o utilizando una distribución de probabilidad no uniforme. Para obtener más información acerca de los identificadores de función, consulte .Create Function Handle

De forma predeterminada, la transformación no rota las imágenes.tform

Ejemplo: [-45 45]

Rango de escala uniforme (isotrópico) aplicado a la imagen de entrada, especificado como el par separado por comas que consta de y uno de los siguientes.'Scale'

  • Vector numérico de 2 elementos. El segundo elemento debe ser mayor o igual que el primer elemento. El factor de escala se selecciona aleatoriamente de una distribución uniforme continua dentro del intervalo especificado.

  • función. La función no debe aceptar ningún argumento de entrada y devolver el factor de escala como un escalar numérico. Utilice un identificador de función para seleccionar factores de escala de un intervalo desarticulado o mediante una distribución de probabilidad no uniforme. Para obtener más información acerca de los identificadores de función, consulte .Create Function Handle

De forma predeterminada, la transformación no escala las imágenes.tform

Ejemplo: [0.5 4]

Rango de cizallamiento horizontal aplicado a la imagen de entrada, especificado como el par separado por comas que consta de y uno de los siguientes.'XShear' La cizalladura se mide como un ángulo en grados, y está en el rango (–90, 90).

  • Vector numérico de 2 elementos. El segundo elemento debe ser mayor o igual que el primer elemento. El ángulo de cizallamiento horizontal se selecciona aleatoriamente de una distribución uniforme continua dentro del intervalo especificado.

  • función. La función no debe aceptar ningún argumento de entrada y devolver el ángulo de corte horizontal como un escalar numérico. Utilice un controlador de función para seleccionar ángulos de cizallamiento horizontales a partir de un intervalo desarticulado o utilizando una distribución de probabilidad no uniforme. Para obtener más información acerca de los identificadores de función, consulte .Create Function Handle

De forma predeterminada, la transformación no cortan las imágenes en la dirección horizontal.tform

Ejemplo: [0 45]

Rango de cizallamiento vertical aplicado a la imagen de entrada, especificado como el par separado por comas que consta de y uno de los siguientes.'YShear' La cizalladura se mide como un ángulo en grados, y está en el rango (–90, 90).

  • Vector numérico de 2 elementos. El segundo elemento debe ser mayor o igual que el primer elemento. El ángulo de cizallamiento vertical se selecciona aleatoriamente de una distribución uniforme continua dentro del intervalo especificado.

  • función. La función no debe aceptar ningún argumento de entrada y devolver el ángulo de cizallamiento vertical como un escalar numérico. Utilice un controlador de función para seleccionar ángulos de cizallamiento verticales de un intervalo desarticulado o utilizando una distribución de probabilidad no uniforme. Para obtener más información acerca de los identificadores de función, consulte .Create Function Handle

De forma predeterminada, la transformación no cortan imágenes en la dirección vertical.tform

Ejemplo: [0 45]

Rango de traducción horizontal aplicado a la imagen de entrada, especificado como el par separado por comas que consta de y uno de los siguientes.'XTranslation' La distancia de traducción se mide en píxeles.

  • Vector numérico de 2 elementos. El segundo elemento debe ser mayor o igual que el primer elemento. La distancia de traslación horizontal se selecciona aleatoriamente de una distribución uniforme continua dentro del intervalo especificado.

  • función. La función no debe aceptar ningún argumento de entrada y devolver la distancia de traducción horizontal como un escalar numérico. Utilice un identificador de función para seleccionar distancias de traslación horizontales de un intervalo desarticulado o utilizando una distribución de probabilidad no uniforme. Para obtener más información acerca de los identificadores de función, consulte .Create Function Handle

De forma predeterminada, la transformación no traduce imágenes en la dirección horizontal.tform

Ejemplo: [-5 5]

Rango de traducción vertical aplicado a la imagen de entrada, especificado como el par separado por comas que consta de y uno de los siguientes.'YTranslation' La distancia de traducción se mide en píxeles.

  • Vector numérico de 2 elementos. El segundo elemento debe ser mayor o igual que el primer elemento. La distancia de traslación vertical se selecciona aleatoriamente de una distribución uniforme continua dentro del intervalo especificado.

  • función. La función no debe aceptar ningún argumento de entrada y devolver la distancia de traducción vertical como un escalar numérico. Utilice un identificador de función para seleccionar distancias de traslación verticales de un intervalo desarticulado o mediante una distribución de probabilidad no uniforme. Para obtener más información acerca de los identificadores de función, consulte .Create Function Handle

De forma predeterminada, la transformación no traduce imágenes en la dirección vertical.tform

Ejemplo: [-5 5]

Argumentos de salida

contraer todo

Transformación afín, especificada como un objeto.affine2d

Introducido en R2019b