exponenta event banner

idct2

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

Описание

пример

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

B = idct2(A,m,n) и

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

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

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

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

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

свернуть все

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

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

Совет

  • Для любой матрицы A, idct2(dct2(A)) равняется A в пределах ошибки округления.

Алгоритмы

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

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

где

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

и

αq = { 1N, q  =  0   2N ,     1≤q≤N−1.

Ссылки

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

[2] Пеннебакер, В. Б., и Дж. Л. Митчелл, JPEG: Still Image Data Compression Standard, Нью-Йорк, Ван Ностранд Рейнхольд, 1993.

См. также

| | |

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