dct2

2D дискретное косинусное преобразование

Синтаксис

B = dct2(A)
B = dct2(A,m,n)
B = dct2(A,[m n])

Описание

пример

B = dct2(A) возвращает двумерное дискретное косинусное преобразование A. Матричный B содержит коэффициенты дискретного косинусного преобразования B (k1, k2).

B = dct2(A,m,n) и

B = dct2(A,[m n]) заполните матричный A 0 s, чтобы измерить m-by-n прежде, чем применить преобразование. Если m или n меньше, чем соответствующая размерность A, то обрезки dct2 A перед преобразованием.

Примеры

свернуть все

Этот пример показывает, как удалить высокие частоты из изображения с помощью двумерной дискретной передачи косинуса (DCT).

Считайте изображение в рабочую область, затем преобразуйте изображение в шкалу полутонов.

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

Выполните 2D DCT полутонового изображения с помощью функции dct2.

J = dct2(I);

Отобразите преобразованное изображение с помощью логарифмического масштаба. Заметьте, что большая часть энергии находится в левом верхнем углу.

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

Установите значения меньше, чем значение 10 в матрице DCT, чтобы обнулить.

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

Восстановите изображение с помощью обратной функции DCT idct2.

K = idct2(J);

Отобразите исходное полутоновое изображение вместе с обработанным изображением.

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

Входные параметры

свернуть все

Введите матрицу, заданную как 2D числовая матрица.

Количество строк изображений, заданных как положительное целое число. клавиатуры dct2 отображают A с 0 s, или обрезает, отображают A так, чтобы это имело строки m. По умолчанию m равен size(A,1).

Количество столбцов типа image, заданных как положительное целое число. клавиатуры dct2 отображают A с 0 s, или обрезает, отображают A так, чтобы это имело столбцы n. По умолчанию n равен size(A,2)

Выходные аргументы

свернуть все

Преобразованная матрица с помощью двумерного дискретного косинусного преобразования, возвращенного как m-by-n числовая матрица.

Типы данных: double

Больше о

свернуть все

Дискретное косинусное преобразование

Дискретное косинусное преобразование (DCT) тесно связано с дискретным преобразованием Фурье. Это - отделимое линейное преобразование; то есть, двумерное преобразование эквивалентно одномерному DCT, выполняемому по одному измерению, сопровождаемому одномерным DCT в другой размерности. Определение двумерного DCT для входа отображает A и выходное изображение, которое B

Bpq=αpαqm=0M1n=0N1Amnпотому чтоπ(2m+1)p2Mпотому чтоπ(2n+1)q2N, 0pM10qN1

где

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

и

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

M и N являются размером строки и столбца A, соответственно.

Советы

  • Если вы применяете DCT к действительным данным, результат также действителен. DCT имеет тенденцию концентрировать информацию, делая его полезным для приложений сжатия изображения.

  • Чтобы инвертировать преобразование DCT, используйте idct2.

Ссылки

[1] Джайн, Анил К., Основные принципы Цифровой обработки изображений, Englewood Cliffs, NJ, Prentice Hall, 1989, стр 150–153.

[2] Pennebaker, Уильям Б., и Джоан Л. Митчелл, JPEG: стандарт сжатия данных неподвижного изображения, Ван Нострэнд Райнхольд, 1993.

Смотрите также

| |

Представлено до R2006a