Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

dctmtx

Matriz de la transformada de coseno discreta

Descripción

D = dctmtx(n) devuelve la matriz de la transformada de coseno discreta (DCT) n por n, que se puede utilizar para realizar una DCT 2D en una imagen.

ejemplo

Ejemplos

contraer todo

Lea una imagen en el espacio de trabajo y conviértala a la clase double.

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

Calcule la matriz de la transformada de coseno discreta.

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

Multiplique la imagen de entrada A por D para obtener la DCT de las columnas de A y por D' para obtener la DCT inversa de las columnas de A.

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

Argumentos de entrada

contraer todo

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

Tipos de datos: double

Argumentos de salida

contraer todo

Matriz de DCT, devuelta como matriz numérica de tamaño n por n.

Tipos de datos: double

Sugerencias

  • Si tiene una imagen n por n, A, entonces D*A es la DCT de las columnas de A y D'*A es la DCT inversa de las columnas de A.

  • La DCT bidimensional de A se puede calcular como D*A*D'. En ocasiones, este cálculo es más rápido que utilizar dct2, especialmente si está calculando un gran número de DCT pequeñas, porque D se ha de determinar solo una vez.

    Por ejemplo, en la compresión JPEG, se calcula la DCT de cada bloque de 8 por 8. Para realizar este cálculo, utilice dctmtx para determinar D y, luego, calcule cada DCT usando D*A*D' (donde A es cada bloque de 8 por 8). Así es más rápido que llamar a dct2 para cada uno de los bloques.

Historial de versiones

Introducido antes de R2006a

Consulte también