В этом разделе мы используем инструмент Wavelet Packet 2-D для анализа и сжатия изображения отпечатка пальца. Это реальная проблема: Федеральное бюро расследований (ФБР) ведет большую базу данных отпечатков пальцев - их около 30 млн наборов. Стоимость хранения всех этих данных достигает сотен миллионов долларов.
«ФБР использует восемь битов на пиксель для определения оттенка серого и хранит 500 пикселей на дюйм, что составляет около 700 000 пикселей и 0,7 мегабайта на палец для хранения отпечатков пальцев в электронной форме». (Викерхаузер, см. ссылку [Wic94] стр. 387, приведенную в разделе Ссылки).
«Метод включает в себя 2-D DWT, равномерное скалярное квантование (процесс, который усекает или квантует точность вывода DWT с плавающей запятой) и энтропийное кодирование Хаффмана (т.е. кодирование квантованного выхода DWT с минимальным количеством битов)». (Brislawn, см. ссылку [Bris95] стр. 1278, приведенную в разделе Ссылки).
Обращаясь к вейвлетам, ФБР достигло степени сжатия 15:1. В этой заявке вейвлет-сжатие лучше, чем более традиционное сжатие JPEG, поскольку оно позволяет избежать небольших квадратных артефактов и особенно хорошо подходит для обнаружения разрывов (линий) в отпечатке пальца.
Отметим, что международный стандарт JPEG 2000 будет включать вейвлеты как часть процесса сжатия и квантования. Это указывает на нынешнюю силу вейвлетов.
В подсказке MATLAB ® введитеwaveletAnalyzer. Появится вейвлет-анализатор.

Выберите пункт меню Wavelet Packet 2-D.
Импорт изображения
В командной строке MATLAB введите
load detfingr;
X переменная. Нажмите кнопку ОК, чтобы импортировать изображение отпечатка пальца.Анализ изображения
Установите соответствующие параметры для анализа. Выберите haar вейвлет, уровень 3и тип энтропии shannon. Нажмите кнопку «Анализ».

Примечание
Многие возможности доступны с помощью командной области справа от окна 2-D вейвлет-пакетов.
Нажмите кнопку «Лучшее дерево», чтобы вычислить лучшее дерево перед сжатием изображения.

Нажмите кнопку Compress, чтобы открыть окно Wavelet Packet 2-D Compression. Выберите Bal. параметр sparsity-norm (sqrt) в меню метода выбора пороговых значений.

Обратите внимание, что пороговое значение по умолчанию (7,125) обеспечивает сжатие на 64% при сохранении практически всей энергии исходного изображения. В зависимости от ваших критериев, может быть, стоит экспериментировать с более агрессивными порогами для достижения более высокой степени сжатия. Напомним, что мы не выполняем никакого квантования изображения, просто устанавливая конкретные коэффициенты на ноль. Это можно рассматривать как этап предварительного сжатия в более широкой системе сжатия.
Изменение порога: введите номер 30 в текстовом поле напротив ползунка порога, расположенного в правой части окна Wavelet Packet 2-D Compression. Затем нажмите клавишу Enter.

Установка всех коэффициентов вейвлет-пакетов, значение которых падает ниже 30 до нуля, дает гораздо лучшие результаты. Заметим, что новый порог достигает около 92% нулей, сохраняя при этом почти 98% энергии изображения.
Нажмите кнопку «Сжатие», чтобы начать сжатие.
Можно видеть результат, полученный с помощью пороговой обработки коэффициентов вейвлет-пакетов и восстановления изображения. Визуальное восстановление правильное, но не идеальное. Сжатое изображение, показанное рядом с оригиналом, показывает некоторые артефакты.

Нажмите кнопку Close в нижней части окна Wavelet Packet 2-D Compression. Обновите синтезированное изображение, нажав кнопку Да, когда появится диалоговое окно.
Воспользуйтесь этой возможностью, чтобы опробовать собственную стратегию сжатия. Настройте пороговое значение, функцию энтропии и вейвлет и проверьте, можно ли получить лучшие результаты.
Намек
bior6.8 вейвлет лучше подходит для этого анализа, чем haarи может привести к лучшей степени сжатия. Когда используется биоргональный вейвлет, то вместо «Сохраняемая энергия» отображается информация «Отношение энергии». Дополнительные сведения см. в разделе Показатели сжатия.
Прежде чем завершить этот анализ, стоит обратить наше внимание на «цветные коэффициенты для графика терминальных узлов» и рассмотреть лучшее разложение дерева для этого изображения.

Этот график показан в правой нижней части инструмента Wavelet Packet 2-D. График показывает нам, какие детали были разложены, а какие нет. Большие квадраты представляют детали, которые не были разбиты на столько уровней, как меньшие квадраты. Рассмотрим, например, эту схему разложения уровня 2:

Взгляд на рисунок малых и больших квадратов в анализе отпечатков пальцев показывает, что лучший алгоритм дерева, по-видимому, выделил диагональные детали, часто избавляя их от дальнейшего разложения. Почему это?
Если мы рассмотрим исходное изображение, мы поймём, что большая часть его информации сосредоточена в острых краях, составляющих рисунок отпечатка пальца. Глядя на эти края, мы видим, что они преимущественно ориентированы горизонтально и вертикально. Это объясняет, почему лучший алгоритм дерева «выбрал» не разлагать диагональные детали - они не дают очень много информации.