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.

decorrstretch

Aplicar decoracion estirar a la imagen multicanal

Descripción

S = decorrstretch(A) aplica una extensión de decoracion a la imagen RGB o multiespectral y devuelve el resultado.AS La media y la varianza en cada banda de son los mismos que en.SA

El propósito principal del estiramiento de la decoracion es la mejora visual. El estiramiento de la decoracion es una manera de mejorar las diferencias de color en una imagen.

ejemplo

S = decorrstretch(A,Name,Value) utiliza pares nombre-valor para controlar los aspectos del estiramiento de la decoracion, como la media de destino y la desviación estándar de cada banda.

Ejemplos

contraer todo

En este ejemplo se muestra cómo usar la decoracion de estiramiento para resaltar elementos en una imagen de bosque exagerando las diferencias de color.

Leer una imagen en el espacio de trabajo.

[X, map] = imread('forest.tif');

Aplicar decoracion estirando usando.decorrstretch

S = decorrstretch(ind2rgb(X,map),'tol',0.01);

Visualice la imagen original y la imagen mejorada.

figure imshow(X,map) title('Original Image')

figure imshow(S) title('Enhanced Image')

Argumentos de entrada

contraer todo

Imagen que se debe mejorar, especificada como una imagen RGB o una imagen multiespectral de tamaño por--por-.mnnBands Para una imagen RGB, = 3.nBands

Tipos de datos: single | double | int16 | uint8 | uint16

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: 'Mode','covariance'

Método decorrelation, especificado como el par separado por comas que consta de y de los siguientes valores.'Mode'

  • : Utiliza la descomposición de Eigen de la matriz de correlación de banda a banda.'correlation'

  • : Utiliza la descomposición de Eigen de la matriz de covarianzas de banda a banda.'covariance'

Tipos de datos: char | string

Valores de la media de destino de las bandas de salida, especificadas como el par separado por comas que consta de un escalar real o un vector de longitud.'TargetMean'nBands Por defecto, es un 1-por-vector que contiene la media de la muestra de cada banda, que preserva los medios de la banda antes y después del estiramiento de la decoracion.TargetMeannBands

debe ser de clase, pero utiliza los mismos valores que los píxeles de la imagen de entrada.TargetMeandouble Por ejemplo, si es la clase, entonces sería un valor razonable.Auint8127.5 Si es necesario que los valores se sujeten al rango estándar de la clase de imagen de entrada/salida, puede afectar a los resultados.

Tipos de datos: double

Valores de desviación estándar de destino de las bandas de salida, especificadas como el par separado por comas que consta de un escalar positivo o un vector de longitud.'TargetSigma'nBands Por defecto, es un 1-por-vector que contiene la desviación estándar de la muestra de cada banda, que preserva la varianza de la banda antes y después del estiramiento de la decoracion.TargetSigmanBands La desviación estándar de destino se ignora para las bandas uniformes (varianza cero).

debe ser de clase, pero utiliza los mismos valores que los píxeles de la imagen de entrada.TargetSigmadouble Por ejemplo, si es de clase, entonces sería un valor razonable.Auint850.0

Tipos de datos: double

El contraste lineal se estira siguiendo el estiramiento de la decoracion, especificado como el par separado por comas que consta de un vector numérico de clase o de 2 elementos.'Tol'double Especificar un valor de invalida el valor de o.TolTargetMeanTargetSigma Si no se especifica, de forma predeterminada no se realiza la extensión de contraste lineal.Toldecorrstretch

tiene el mismo significado que en, donde especifica la fracción de la imagen para saturar a bajas y altas intensidades.TolstretchlimTol = [LOW_FRACT HIGH_FRACT] Si se especifica como un valor escalar, entonces y, saturando fracciones iguales en intensidades bajas y altas.TolLOW_FRACT = TolHIGH_FRACT = 1 - Tol

Los pequeños ajustes pueden afectar fuertemente a la apariencia visual de la salida.Tol

Tipos de datos: double

Subconjunto de usados para calcular la banda-medias, la covarianza y la correlación, especificadas como una matriz de celdas que contiene dos matrices de subnodos de píxel. y son vectores o matrices de tamaño coincidente que contienen subgrupos de filas y columnas, respectivamente.A{rowsubs, colsubs}rowsubscolsubs

Utilice esta opción para reducir la cantidad de cálculo, para evitar que los píxeles no válidos o no representativos afecten a la transformación o ambos. Por ejemplo, puede usar y excluir áreas de la cubierta de nubes.rowsubscolsubs Si no se especifica, utiliza todos los píxeles de.decorrstretchA

Tipos de datos: double

Argumentos de salida

contraer todo

Decorrelation imagen estirada, devuelta como una matriz numérica del mismo tamaño y clase que la imagen de entrada,.A

Sugerencias

  • Los resultados de una decoracion recta (sin la opción de estiramiento de contraste) pueden incluir valores que caen fuera del rango numérico soportado por la clase o (valores negativos, o valores que exceden o, respectivamente).uint8uint1625565535 En estos casos, sujeta su salida al rango admitido.decorrstretch

  • Para la clase, abrazaderas la salida sólo cuando se proporciona un valor para, especificando un estiramiento de contraste lineal seguido de la sujeción al intervalo.doubledecorrstretchTol[0 1]

  • Los parámetros opcionales no interactúan, excepto que una extensión lineal normalmente altera los medios de banda y las desviaciones estándar de banda. Por lo tanto, mientras que usted puede especificar y junto con, sus efectos serán modificados.TargetMeanTargetSigmaTol

Algoritmos

Un estiramiento de descorrelación es una operación lineal de píxel en la que los parámetros específicos dependen de los valores de las estadísticas de imagen reales y deseadas (destino). El vector que contiene el valor de un píxel dado en cada banda de la imagen de entrada se transforma en el píxel correspondiente en la imagen de salida de la siguiente manera:aAbB

.b = T * (a - m) + m_target

y son-por-1 vectores, es un-por-matriz, y y son-por-1 vectores tales queabnBandsTnBandsnBandsmm_targetnBands

  • contiene la media de cada banda de la imagen, o en un subconjunto de píxeles de imagen que especifiquem

  • contiene la media de salida deseada en cada banda.m_target La opción predeterminada es.m_target = m

La matriz de transformación lineal depende de lo siguiente:T

  • La covarianza de muestra de banda a banda de la imagen, o de un subconjunto de la imagen que especifique (el mismo subconjunto que se utiliza para), representada por la matrizmCov

  • Una desviación estándar de salida deseada en cada banda. Esto está convenientemente representado por una matriz diagonal,.SIGMA_target La opción predeterminada es, donde está la matriz diagonal que contiene la desviación estándar de la muestra de cada banda. se debe calcular a partir de los mismos píxeles que se utilizaron para y, lo que significa simplemente que:SIGMA_target = SIGMASIGMASIGMAmCov

    .SIGMA(k,k) = sqrt(Cov(k,k), k = 1,..., nBands)

, y son-por-, al igual que las matrices, y, definidas a continuación.CovSIGMASIGMA_targetnBandsnBandsCorrLAMBDAV

El primer paso en la computación es realizar una descomposición Eigen de la matriz de covarianzas o de la matriz de correlaciónTCov

.Corr = inv(SIGMA) * Cov * inv(SIGMA)

  • En el método basado en la correlación, se descompone:.CorrCorr = V LAMBDA V'

  • En el método basado en covarianza, está descompuesto:.CovCov = V LAMBDA V'

es una matriz diagonal de valores autovalores y es la matriz ortogonal que se transforma o bien.LAMBDAVCorrCovLAMBDA

El siguiente paso es calcular un factor de estiramiento para cada banda, que es la raíz cuadrada inversa del valor propio correspondiente. Es conveniente definir una matriz diagonal que contenga los factores de estiramiento, de tal forma que:S

.S(k,k) = 1 / sqrt(LAMBDA(k,k))

Por último, la matriz se calcula a partir de cualquieraT

(método basado en la correlación)T = SIGMA_target V S V' inv(SIGMA)

O

(método basado en covarianza).T = SIGMA_target V S V'

Los dos métodos producen resultados idénticos si las desviaciones de la banda son uniformes.

Sustituyendo en la expresión por:Tb

b = m_target + SIGMA_target V S V' inv(SIGMA) * (a - m)

O

b = m_target + SIGMA_target V S V' * (a - m)

y la lectura de derecha a izquierda, se puede ver que la decoracion estirar:

  1. Elimina una media de cada banda

  2. Normaliza cada banda por su desviación estándar (método basado en la correlación solamente)

  3. Rota las bandas en el espacio propio oCorrCov

  4. Aplica un estiramiento en el espacio propio, dejando la imagen decoran y normalizadas en el propioS

  5. Gira de nuevo al espacio de banda original, donde las bandas permanecen decoran y normalizadas

  6. Rescales cada banda segúnSIGMA_target

  7. Restaura una media en cada banda.

Consulte también

|

Introducido antes de R2006a