Main Content

images.geotrans.Warper

Aplicar la misma transformación geométrica a muchas imágenes de manera eficiente

Descripción

Un objeto aplica una transformación geométrica a imágenes con un tamaño específico.Warperaffine2dprojective2d

Creación

Descripción

ejemplo

w = images.geotrans.Warper(tform,inputSize) crea un cautelar de imagen a partir del objeto de transformación geométrica y establece la propiedad.tformInputSize

w = images.geotrans.Warper(tform,inputRef) especifica el sistema de coordenadas de las imágenes de entrada, .inputRef

w = images.geotrans.Warper(tform,inputRef,outputRef) especifica el sistema de coordenadas de la imagen de salida, .outputRef Esta sintaxis se puede utilizar para mejorar el rendimiento limitando la aplicación de la transformación geométrica a una región de salida específica de interés.

w = images.geotrans.Warper(sourceX,sourceY) especifica las coordenadas de la imagen de entrada y , necesarias para realizar la transformación geométrica.sourceXsourceY

w = images.geotrans.Warper(___,Name,Value) establece las propiedades y mediante uno o varios argumentos de par nombre-valor.InterpolationFillValue Incluya cada nombre de propiedad entre comillas simples.

Por ejemplo, especifica un valor de relleno de píxeles fuera de la imagen original.warper = images.geotrans.Warper(tform,size(im),'FillValue',1)1

Argumentos de entrada

expandir todo

Transformación geométrica, especificada como un objeto de transformación geométrica.affine2dprojective2d

Objeto de referencia asociado a la imagen de entrada, especificado como un objeto de referencia espacial.imref2d

Objeto de referencia asociado a la imagen de salida, especificado como un objeto de referencia espacial.imref2d

Coordenadas de imagen de entrada, especificadas como una matriz 2D del mismo tamaño que la imagen de salida requerida. Cada índice ( , ) y especifica la ubicación en la imagen de entrada para el píxel de salida correspondiente.xysourceXsourceY

Tipos de datos: single

Propiedades

expandir todo

Tamaño de las imágenes de entrada, especificado como un vector de 2 o 3 elementos de enteros positivos.

Tamaño de las dos primeras dimensiones de la imagen de salida, especificado como un vector de 2 elementos de enteros positivos.

Método de interpolación, especificado como , , o .'linear''nearest''cubic'

Tipos de datos: char | string

Valor utilizado para píxeles de salida fuera de los límites de la imagen de entrada, especificado como escalar numérico. convierte el valor de relleno al tipo de datos de la imagen de entrada.Warper

Funciones del objeto

warpAplicar transformación geométrica

Ejemplos

contraer todo

Elija un conjunto de imágenes del mismo tamaño. En el ejemplo se utiliza un conjunto de imágenes que muestran celdas.

imds = imageDatastore(fullfile(matlabroot,'toolbox','images','imdata','AT*'));

Cree una transformación geométrica para rotar cada imagen 45 grados y reducir cada imagen.

tform = affine2d([ 0.5*cos(pi/4) sin(pi/4)     0;                   -sin(pi/4)     0.5*cos(pi/4) 0;                    0             0             1]);

Cree un objeto, especificando el objeto de transformación geométrica y el tamaño de las imágenes de entrada.Warpertform

im = readimage(imds,1); warper = images.geotrans.Warper(tform,size(im));

Determine el número de imágenes que se van a procesar y preasignar la matriz de salida.

numFiles = numel(imds.Files); imr = zeros([warper.OutputSize 1 numFiles],'like',im);

Aplique la transformación geométrica a cada una de las imágenes de entrada llamando a la función del objeto.warpWarper

for ind = 1:numFiles     im = read(imds);     imr(:,:,1,ind) = warp(warper,im); end

Visualice las imágenes de salida. (Desactive el mensaje de advertencia sobre las imágenes que se están escalando para su visualización.)

warning('off','images:initSize:adjustingMag') montage(imr);

Sugerencias

  • Si las imágenes de entrada son imágenes RGB o imágenes en escala de grises 3D de tamaño -por- -por- , a continuación, aplica la transformación a cada canal de color o plano de forma independiente.mnpwarpp

Algoritmos

está optimizado para aplicar la misma transformación geométrica en un lote de imágenes del mismo tamaño. logra esta optimización dividiendo el proceso de deformación en dos pasos: cálculo de las coordenadas transformadas (hecho una vez) e interpolación en la imagen (hecho para cada imagen).WarperWarper En comparación con , este enfoque acelera todo el proceso significativamente para imágenes pequeñas a medianas, con rendimientos decrecientes para imágenes más grandes.imwarp

Consulte también

Funciones

Objetos

Introducido en R2017b