Main Content

dctmtx

Matriz de transformación de coseno discreta

Descripción

ejemplo

D = dctmtx(n) devuelve la matriz -by- discrete coseno transform (DCT), que puede utilizar para realizar un DCT 2D en una imagen.nn

Ejemplos

contraer todo

Lea una imagen en el espacio de trabajo y consella a la clase .double

A = im2double(imread('rice.png')); imshow(A)

Calcular la matriz de transformación de coseno discreta.

D = dctmtx(size(A,1));

Multiplique la imagen de entrada por para obtener el DCT de las columnas de , y por para obtener el DCT inverso de las columnas de .ADAD'A

dct = D*A*D'; imshow(dct)

Argumentos de entrada

contraer todo

Tamaño de la matriz DCT, especificado como un entero positivo.

Tipos de datos: double

Argumentos de salida

contraer todo

Matriz DCT, devuelta como una matriz numérica de tamaño -por- .nn

Tipos de datos: double

Sugerencias

  • Si tiene una imagen -by-, entoncesnnA D*A es el DCT de las columnas de y es el DCT inverso de las columnas de .AD'*AA

  • El DCT bidimensional de se puede calcular como .AD*A*D' Este cálculo es a veces más rápido que usar , especialmente si está calculando un gran número de pequeños DCT, porque debe determinarse una sola vez.dct2D

    Por ejemplo, en la compresión JPEG, se calcula el DCT de cada bloque de 8 por 8. Para realizar este cálculo, utilice para determinar y, a continuación, calcule cada DCT mediante (donde está cada bloque de 8 por 8).dctmtxDD*A*D'A Esto es más rápido que llamar a cada bloque individual.dct2

Consulte también

Introducido antes de R2006a