exponenta event banner

dct2

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

Описание

пример

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

B = dct2(A,m,n) и

B = dct2(A,[m n]) прокладка матрицы A с 0s к размеру mоколо-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около-n числовая матрица.

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

Подробнее

свернуть все

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

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

Bpq=αpαq∑m=0M−1∑n=0N−1Amncosπ (2 м + 1) p2Mcosπ ( + 1) q2N, 0≤p≤M−10≤q≤N−1

где

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

и

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

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

Совет

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

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

Ссылки

[1] Джейн, Анил К., Основы обработки цифровых изображений, Энглвуд Клиффс, Нью-Джерси, Прентис Холл, 1989, стр. 150-153.

[2] Пеннебакер, Уильям Б. и Джоан Л. Митчелл, JPEG: Still Image Data Compression Standard, Van Nostrand Reinhold, 1993.

См. также

| |

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