Используйте функции dct и idct, чтобы рассчитать дискретное косинус-преобразование и обратное преобразование соответственно. Данное преобразование имеет преимущество, поскольку концентрирует большую часть "энергии" (информации) изображения в нескольких частотных составляющих.
2. Реализация косинусного преобразования использует тип II DCT. Определите DCT для аналитической формулы этого преобразования.
3. Вычислите матрицу DCT.
4. Примените функцию dct к матрице M.
5. Вычислите максимальную ошибку между DCT и функцией dct.
Сравнение энергии
У косинусного преобразования очень хорошие свойства сжатия: большая часть энергии концентрируется в первых нескольких коэффициентах преобразования.
1. Определите входную матрицу.
2. Примените функцию dct к матрице M и вычислите ее.
Результирующая матрица показывает, что большая часть энергии, которая относится к значениям коэффициентов, сконцентрирована в нескольких первых элементах.
idct
Обратная функция используется для восстановления исходного изображения из его преобразования.
1. Прочтите в черно-белой версии Мону Лизу.
(mona.bmp)
2. Примените функцию dct, чтобы преобразовать изображение.
(mona_noise.bmp)
3. Примените обратную функцию, чтобы восстановить изображение.
(mona_rec.bmp)
4. Проверьте свойство cжатия энергии DCT, просмотрев гистограммы преобразованных и исходных изображений.
Преобразованное изображение концентрирует большую часть энергии в первых нескольких столбцах гистограммы, пока происходит распределение исходного изображения. Благодаря этому преобразованное изображение — оптимальный выбор для кодировки символов или передачи, поскольку большая часть информации изображения может быть передано с очень малым числом частотных компонентов. Именно поэтому для сжатия изображений используется DCT.