idct2

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

Описание

пример

B = idct2(A) возвращает двумерное обратное дискретное косинусное преобразование (DCT) A.

B = idct2(A,m,n) и

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

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

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

свернуть все

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

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

Советы

  • Для любого матричного A, idct2(dct2(A)) равняется A к в ошибке округления.

Алгоритмы

idct2 вычисляет двумерное обратное использование DCT:

Amn=p=0M1q=0N1αpαqBpqпотому чтоπ(2m+1)p2Mпотому чтоπ(2n+1)q2N, 0mM10nN1,

где

αp={1M, p=0             2M, 1pM1

и

αq={1N, q=0            2N, 1qN1.

Ссылки

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

[2] Pennebaker, W. B., и Дж. Л. Митчелл, JPEG: Стилл-Имэдж-Дэта-Компрешен-Стэндард, Нью-Йорк, Ван Нострэнд Райнхольд, 1993.

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

| | |

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