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.

dct2

Transformación de coseno discreta 2-D

Descripción

ejemplo

B = dct2(A) devuelve la transformación de coseno discreto bidimensional de .A La matriz contiene los coeficientes discretos de transformación del cosenoBB(k1,k2).

B = dct2(A,m,n) Y

B = dct2(A,[m n]) rellenar la matriz con s a tamaño -por- antes de aplicar la transformación.A0mn Si es o es menor que la dimensión correspondiente de , a continuación, los recortes antes de la transformación.mnAdct2A

Ejemplos

contraer todo

Este ejemplo muestra cómo quitar frecuencias altas de una imagen utilizando la transferencia de coseno discreta bidimensional (DCT).

Lea una imagen en el espacio de trabajo y, a continuación, convierta la imagen a escala de grises.

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

Realice un 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 que la mayor parte de la energía está en la esquina superior izquierda.

figure imshow(log(abs(J)),[]) colormap(gca,jet(64)) colorbar

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

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

Reconstruya la imagen utilizando la función DCT inversa.idct2

K = idct2(J);

Muestre la imagen en escala de grises original junto a la imagen procesada.

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

Argumentos de entrada

contraer todo

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

Número de filas de imagen, especificado como un entero positivo. rellena la imagen con s o trunca la imagen para que tenga filas.dct2A0Am De forma predeterminada, es igual a .msize(A,1)

Número de columnas de imagen, especificado como un entero positivo. rellena la imagen con s o trunca la imagen para que tenga columnas.dct2A0An De forma predeterminada, es igual ansize(A,2)

Argumentos de salida

contraer todo

Matriz transformada utilizando una transformación de coseno discreta bidimensional, devuelta como una matriz numérica -por-.mn

Tipos de datos: double

Más acerca de

contraer todo

Transformación coseno discreta

La transformación de coseno discreta (DCT) está estrechamente relacionada con la transformación discreta de Fourier. Es una transformación lineal separable; es decir, la transformación bidimensional es equivalente a un DCT unidimensional realizado a lo largo de una sola dimensión seguida de un DCT unidimensional en la otra dimensión. La definición del DCT bidimensional para una imagen de entrada y una imagen de salida esAB

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

Dónde

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

Y

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

y son el tamaño de fila y columna de , respectivamente.MNA

Sugerencias

  • Si aplica el DCT a datos reales, el resultado también es real. El DCT tiende a concentrar la información, por lo que es ú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.

Consulte también

| |

Introducido antes de R2006a