dct2

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

Описание

пример

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

B = dct2(A,m,n) и

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

Примеры

свернуть все

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

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

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

J = dct2(I);

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

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

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

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

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

Восстановите изображение с помощью обратной функции DCT idct2. Измените значения на область значений [0, 1], ожидаемый от изображений типа данных double.

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

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

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

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

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

свернуть все

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

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

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

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

свернуть все

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

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

Подробнее о

свернуть все

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

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

Bpq=αpαqm=0M1n=0N1Amncosπ(2m+1)p2Mcosπ(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] Jain, Anil K., Основы цифровой обработки изображений, 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.

См. также

| |

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте