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.

dct2

Transformada de coseno discreta 2D

Descripción

ejemplo

B = dct2(A) devuelve la transformada de coseno discreta bidimensional de A. La matriz B contiene los coeficientes de la transformada de coseno discreta B(k1, k2).

B = dct2(A,m,n) y

B = dct2(A,[m n]) rellena con ceros o recorta la matriz A hasta las dimensiones m por n antes de aplicar la transformada.

Ejemplos

contraer todo

Lea una imagen en el área de trabajo y, después, conviértala en escala de grises.

RGB = imread('autumn.tif');
I = im2gray(RGB);

Realice una DCT 2D de la imagen en escala de grises utilizando la función dct2.

J = dct2(I);

Muestre la imagen transformada utilizando una escala logarítmica. Observe cómo la mayor parte de la energía está en la esquina superior izquierda.

imshow(log(abs(J)),[])
colormap parula
colorbar

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

Establezca en cero los valores inferiores a la magnitud 10 de la matriz DCT.

J(abs(J) < 10) = 0;

Reconstruya la imagen utilizando la función DCT inversa idct2. Vuelva a escalar los valores al intervalo [0, 1] previsto para las imágenes de tipo de datos double.

K = idct2(J);
K = rescale(K);

Muestre la imagen original en escala de grises junto a la imagen procesada. La imagen procesada tiene menos detalles de alta frecuencia, como en la textura de los árboles.

montage({I,K})
title('Original Grayscale Image (Left) and Processed Image (Right)');

Figure contains an axes object. The axes object with title Original Grayscale Image (Left) and Processed Image (Right) contains an object of type image.

Argumentos de entrada

contraer todo

Matriz de entrada, especificada como matriz numérica 2D.

Número de filas de imagen, especificado como entero positivo. dct2 rellena la imagen A con valores de 0 o trunca la imagen A para que tenga m filas. m es igual que size(A,1), por defecto.

Número de columnas de imagen, especificado como entero positivo. dct2 rellena la imagen A con valores de 0 o trunca la imagen A para que tenga n columnas. n es igual que size(A,2), por defecto

Argumentos de salida

contraer todo

Matriz transformada mediante una transformada de coseno discreta bidimensional, devuelta como matriz numérica de m por n.

Tipos de datos: double

Más acerca de

contraer todo

Transformada de coseno discreta

La transformada de coseno discreta (DCT, por sus siglas en inglés) está estrechamente relacionada con la transformada de Fourier discreta. Es una transformación lineal separable; es decir, la transformación bidimensional es equivalente a una DCT unidimensional realizada a lo largo de una sola dimensión seguida de una DCT unidimensional en la otra dimensión. La definición de la DCT bidimensional para una imagen de entrada A y una imagen de salida B es

Bpq=αpαqm=0M1n=0N1Amncosπ(2m+1)p2Mcosπ(2n+1)q2N, 0pM10qN1

donde

αp={1M, p=0           2M, 1pM-1

y

αq={1N, q=0          2N, 1qN-1

M y N son la cantidad de filas y columnas de A, respectivamente.

Sugerencias

  • Si se aplica la DCT a datos reales, el resultado también es real. La DCT tiende a concentrar la información, lo que la hace útil para aplicaciones de compresión de imágenes.

  • Para invertir la transformación DCT, utilice idct2.

Referencias

[1] Jain, Anil K., Fundamentals of Digital Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1989, pp. 150–153.

[2] Pennebaker, William B., and Joan L. Mitchell, JPEG: Still Image Data Compression Standard, Van Nostrand Reinhold, 1993.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

| |