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

ejemplo

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.

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)

Figure contains an axes object. The axes object contains an object of type image.

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)

Figure contains an axes object. The axes object contains an object of type image.

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