Main Content

makeresampler

Crear estructura de remuestreo

Descripción

ejemplo

R = makeresampler(interpolant,padmethod) crea una estructura de remuestreador separable para su uso con .tformarray El argumento especifica el kernel de interpolación que utiliza el remuestreador separable.interpolant El argumento controla cómo el remuestreador interpola o asigna valores a los elementos de salida que se asignan cerca o fuera del borde de la matriz de entrada.padmethod

R = makeresampler(Name,Value,...) crear una estructura de remuestreador que utilice un remuestreador escrito por el usuario mediante pares de valores de parámetro.

Ejemplos

contraer todo

Lea una imagen en el espacio de trabajo y muéstrala.

A = imread('moon.tif'); imshow(A)

Cree un remuestreador separable.

resamp = makeresampler({'nearest','cubic'},'fill');

Cree una estructura de transformación espacial (TFORM) que defina una transformación afín.

stretch = maketform('affine',[1 0; 0 1.3; 0 0]);

Aplique la transformación, especificando el remuestreador personalizado.

B = imtransform(A,stretch,resamp);

Muestre la imagen transformada.

imshow(B)

Argumentos de entrada

contraer todo

Interpolación del kernel, especificado como , , , o una matriz de celdas.'nearest''linear''cubic' En la tabla siguiente se enumeran los interpoladores con nombre:

Interpoladr

Descripción

'cubic'

Interpolación cúbica

'linear'

Interpolación lineal

'nearest'

Interpolación de vecino sin vecinos más cercanos

Si desea utilizar un kernel de interpolación personalizado, especifique una matriz de celdas en cualquiera de estas formas:

{half_width, positive_half}

es un escalar positivo que designa la mitad del ancho de un núcleo interpolador simétrico. es un vector de valores que muestrean regularmente el núcleo en el intervalo cerrado.half_widthpositive_half[0 positive_half]

{half_width, interp_fcn}

es un identificador de función que devuelve valores de kernel de interpolación, dado una matriz de valores de entrada en el intervalo.interp_fcn
[0 positive_half]

Para especificar el método de interpolación de forma independiente a lo largo de cada dimensión, combine ambos tipos de especificaciones interpolantes. El número de elementos de la matriz de celdas debe ser igual al número de dimensiones de transformación. Por ejemplo, considere el siguiente ejemplo de un valor:interpolant

{'nearest', 'linear', {2 KERNEL_TABLE}}

En este ejemplo, el remuestreador utiliza la interpolación de vecino más cercano a lo largo de la primera dimensión de transformación, la interpolación lineal a lo largo de la segunda dimensión y la interpolación personalizada basada en tablas a lo largo de la tercera.

Tipos de datos: char | string | cell

Método utilizado para asignar valores a los elementos de salida que se asignan fuera de la matriz de entrada, especificado como uno de los siguientes valores.

Método Pad

Descripción

'bound'

Asigna valores de la matriz de valores de relleno a puntos que se asignan fuera de la matriz de entrada. Repite los elementos de borde de la matriz para los puntos que se asignan dentro de la matriz (igual que ).'replicate' Cuando es , este método pad produce los mismos resultados que . es como , pero evita mezclar valores de relleno y valores de imagen de entrada.interpolant'nearest''fill''bound''fill'

'circular'

Matriz de almohadillas con repetición circular de elementos dentro de la dimensión. Igual que .padarray

'fill'

Genera una matriz de salida con bordes de aspecto suave (excepto cuando se utiliza la interpolación de vecino más cercano). Para los puntos de salida que se asignan cerca del borde de la matriz de entrada (ya sea dentro o fuera), combina los valores de imagen de entrada y relleno. Cuando es , este método pad produce los mismos resultados que .interpolant'nearest''bound'

'replicate'

Matriz de pads repitiendo los elementos de borde de la matriz. Igual que .padarray

'symmetric'

Matriz de almohadillas con reflejos de espejo de sí mismo. Igual que .padarray

Para , , , o , el remuestreo realizado por se produce en dos pasos lógicos:'fill''replicate''circular''symmetric'tformarray

  1. Rellene la matriz infinitamente para rellenar todo el espacio de transformación de entrada.Un

  2. Evalúe la convolución del acolchado con el kernel de remuestreo en los puntos de salida especificados por el mapa geométrico.Un

Cada dimensión no transformada se controla por separado. El relleno es virtual (realizado mediante la reasignación de subíndices de matriz) para el rendimiento y la eficiencia de la memoria. Si implementa un remuestreador personalizado, puede implementar estos comportamientos.

Tipos de datos: char | string

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: resamp = makeresampler('Type','separable','Interpolant','linear','PadMethod','fill');

Tipo de remuestreador, especificado como uno de los siguientes valores.

TipoDescripción
'separable'Cree un remuestreador separable. Si especifica este valor, las únicas otras propiedades que puede especificar son y .'Interpolant''PadMethod' El resultado equivale a usar la sintaxis.makeresampler(interpolant,padmethod)
'custom'Cree un remuestreador de clientes. Si especifica este valor, debe especificar las propiedades y, opcionalmente, la propiedad.'NDims''ResampleFcn''CustomData'

Tipos de datos: char | string

Consulte el argumento para obtener más información.padmethod

Tipos de datos: char | string

Consulte el argumento para obtener más información.interpolant

Tipos de datos: char | string | cell

Dimensionalidad personalizado resampler puede controlar, especificado como un entero positivo. Utilice un valor de para indicar que el remuestreador personalizado puede controlar cualquier dimensión.Inf Si es , debe especificar .'Type''custom'NDims

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

Función que realiza el remuestreo, especificado como identificador de función. Se llama a esta función con la siguiente interfaz:

B = resample_fcn(A,M,TDIMS_A,TDIMS_B,FSIZE_A,FSIZE_B,F,R)

Para obtener más información acerca de los argumentos de entrada para esta función, vea la ayuda para .tformarray El argumento es una matriz que asigna el espacio de subíndice de transformación al espacio de subíndice de transformación de .MBUn Si tiene cotas de transformación y tiene cotas de transformación , entonces , si y si , y .UnN(N = length(TDIMS_A))BP(P = length(TDIMS_B))ndims(M) = P + 1N > 1PN == 1size(M,P + 1) = N

Las primeras dimensiones de corresponden al espacio de transformación de salida, permutado según el orden en el que se enumeran las dimensiones de transformación de salida en .PMTDIMS_B (En general y no es necesario ordenar en orden ascendente, aunque algunos remuestreadores pueden imponer tal limitación.)TDIMS_ATDIMS_B Por lo tanto, los primeros elementos de determinar los tamaños de las dimensiones de transformación de .Psize(M)B Las coordenadas de transformación de entrada a las que se asigna cada punto se agrupan en la dimensión final de , siguiendo el orden indicado en . debe ser . y son los tamaños completos de y , acolchado con 's según sea necesario para ser consistente con , , y .MTDIMS_AMdoubleFSIZE_AFSIZE_BUnB1TDIMS_ATDIMS_Bsize(A)

Tipos de datos: function_handle

Datos definidos por el usuario, especificados mediante un escalar de cadena, un vector de caracteres o una matriz numérica.

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

Argumentos de salida

contraer todo

Remuestreador, devuelto como una estructura.

Consulte también

Introducido antes de R2006a