Истинное сжатие изображений с помощью вейвлетов
wcompress('c',X,SAV_FILENAME,COMP_METHOD)
wcompress(...,'ParName1',ParVal1,'ParName2',ParVal2,...)
[COMPRAT,BPP] = wcompress('c',...)
XC = wcompress('u',SAV_FILENAME)
XC = wcompress('u',SAV_FILENAME,'plot')
XC = wcompress('u',SAV_FILENAME,'step')
wcompress
команда выполняет или сжатие или несжатие черно-белых или цветных изображений.
Больше теоретической информации об истинном сжатии находится в Сжатии Вейвлета для Изображений Руководства пользователя Wavelet Toolbox™.
wcompress('c',X,SAV_FILENAME,COMP_METHOD)
сжимает изображение X
использование метода сжатия COMP_METHOD
.
Сжатое изображение сохранено в файле SAV_FILENAME
. У вас должно быть разрешение записи в текущей рабочей директории, или MATLAB® изменит директорию в tempdir
и запишите .wtc
файл в той директории. X
может быть или 2D массив, содержащий индексируемое изображение или трехмерный массив uint8
содержа изображение истинного цвета. Оба размер строки и столбца изображения должны быть степенями двойки.
wcompress('c',FILENAME,...)
загружает изображение X
из файла FILENAME
который является файлом Поддерживаемого формата MATLAB (MSF): MAT-файл или другие файлы изображений (см. imread
).
wcompress('c',I,...)
преобразует индексируемое изображение X = I{1}
к истинному цвету отображают Y
использование палитры map = I{2}
и затем сжатия Y
.
Данные записаны в .wtc
файлы используют uint64
точность. В релизах до R2016b данные были записаны с помощью uint32
. Если на ваш код плохо влияет это изменение, используйте legacy
опция, чтобы сжаться и распаковать ваши данные с помощью предыдущего поведения.
wcompress('c',X,SAV_FILENAME,COMP_METHOD,'legacy')
Допустимые методы сжатия разделены на три категории.
Прогрессивные содействующие методы значения (PCSM):
Имя MATLAB | Имя метода сжатия |
---|---|
'ezw' | Встроенный вейвлет Zerotree |
'spiht' | Установите разделение в иерархических деревьях |
'stw' | Вейвлет дерева ориентации в пространстве |
'wdr' | Сокращение различия в вейвлете |
'aswdr' | Адаптивно отсканированное сокращение различия в вейвлете |
'spiht_3d' | Установите Разделение В Иерархических Деревьях, 3D для изображений истинного цвета |
Для получения дополнительной информации об этих методах смотрите ссылки и особенно Уокера и также Саида и Перлмена.
Содействующие методы задания порога (CTM-1):
Имя MATLAB | Имя метода сжатия |
---|---|
'lvl_mmc' | Пороговая обработка поддиапазона коэффициентов и Кодирование методом Хаффмана |
Для получения дополнительной информации об этом методе смотрите ссылку Странга и Нгуена.
Содействующие методы задания порога (CTM-2):
Имя MATLAB | Имя метода сжатия |
---|---|
'gbl_mmc_f' | Глобальная пороговая обработка коэффициентов и зафиксированное кодирование |
'gbl_mmc_h' | Глобальная пороговая обработка коэффициентов и Кодирование методом Хаффмана |
Дискретное Преобразование Вейвлета использует periodized дополнительный режим.
Все методы сжатия используют параметры, которые имеют значения по умолчанию. Можно изменить эти значения с помощью следующего синтаксиса:
wcompress(...,'ParName1',ParVal1,'ParName2',ParVal2,...)
Некоторые параметры связаны с отображением или с функциональностями преобразования данных. Другие соединяются с самим процессом сжатия.
'ParName'
= 'wname'
или 'WNAME'
определяет имя вейвлета.
ParVal
вектор символов или строковый скаляр (см. waveletfamilies
). Значением по умолчанию для является bior4.4
'ParName'
= 'level'
или 'LEVEL'
устанавливает уровень разложения.
ParVal
целое число, таким образом что: 1
≤ level
≤ levmax
который является максимальным возможным уровнем (см. wmaxlev
).
Уровень по умолчанию зависит от метода:
- для методов PCSM level
равно levmax
.
- для CTM уровень методов равен fix(levmax/2)
ParName'
= 'it'
или 'IT'
Преобразование Типа изображения наборов.
ParVal
должно быть одно из следующего:
'n'
: никакое преобразование (значение по умолчанию), тип изображения (истинный цвет или шкала полутонов) автоматически обнаруживается.
'g'
: полутоновый тип преобразования.
'c'
: тип преобразования цвета (RGB uint8
).
'ParName'
= 'cc'
или 'CC'
устанавливает параметр Преобразования цветов если X
изображение истинного цвета.
ParVal
должно быть одно из следующего:
'rgb'
или 'none'
: Никакое преобразование (значение по умолчанию).
'yuv'
: Цветовое пространство YUV преобразовывает.
'klt'
: Karhunen-Loeve преобразовывают.
'yiq'
: Цветовое пространство YIQ преобразовывает.
'xyz'
: Цветовое пространство CIEXYZ преобразовывает.
'ParName'
= 'maxloop'
или 'MAXLOOP'
определяет максимальный номер шагов для алгоритма сжатия.
ParVal
должно быть положительное целое число или Inf
(значение по умолчанию равняется 10).
Любой из следующих параметров может использоваться:
'ParName'
= 'bpp'
или 'BPP'
устанавливает отношение бита на пиксель.
ParVal
должно быть таково что 0
≤ ParVal
≤ 8 (шкала полутонов) или
24
(истинный цвет).
'ParName'
= 'comprat'
или 'COMPRAT'
устанавливает коэффициент сжатия.
ParVal
должно быть таково что 0
≤ ParVal
≤ 100.
Могут использоваться два параметра. Первое связано с порогом, и вторым является количество классов для квантования.
Первый может быть выбран среди пяти после параметров:
'ParName'
= 'threshold'
или 'THRESHOLD'
устанавливает пороговое значение для сжатия.
ParVal
должно быть положительное (или нуль) вещественное число.
'ParName'
= 'nbcfs'
или 'NBCFS'
определяет номер сохраненных коэффициентов в разложении вейвлета.
ParVal
должно быть целое число, таким образом что: 0
≤ ParVal
≤ общее количество коэффициентов разложения вейвлета.
'ParName'
= 'percfs'
или 'PERCFS'
устанавливает процент сохраненных коэффициентов в разложении вейвлета.
ParVal
должно быть вещественное число, таким образом что: 0
≤ ParVal
≤ 100.
'ParName'
= 'bpp'
или 'BPP'
устанавливает отношение бита на пиксель.
ParVal
должно быть таково что: 0
≤ ParVal
≤ 8 (шкала полутонов) или
24
(истинный цвет)
'ParName'
= 'comprat'
или 'COMPRAT'
устанавливает коэффициент сжатия.
ParVal
должно быть таково что: 0
≤ ParVal
≤ 100.
Второй параметр определяет номер классов для квантования:
'ParName'
= 'nbclas'
или 'NBCLAS'
определяет номер классов.
ParVal
должно быть вещественное число, таким образом что: 2
≤ ParVal
≤ 200.
'ParName'
= 'plotpar'
или 'PLOTPAR'
устанавливает параметр графика.
ParVal
должно быть одно из следующего:
'plot'
or 0
: графики только сжатое изображение.
'step'
or 1
: отображения каждый шаг процесса кодирования (только для методов PCSM).
[COMPRAT,BPP] = wcompress('c',...)
возвращает коэффициент сжатия COMPRAT
и bit_per_pixel отношение BPP
.
XC = wcompress('u',SAV_FILENAME)
распаковывает файл SAV_FILENAME
, который содержит сжатое изображение и возвращает изображение XC
. В зависимости от начальной буквы сжатое изображение, XC
может быть 2D массив, содержащий или индексируемое изображение или трехмерный массив uint8
содержа изображение истинного цвета.
XC = wcompress('u',SAV_FILENAME,'plot')
строит несжатое изображение.
XC = wcompress('u',SAV_FILENAME,'step')
показывает постепенное несжатие, только для методов PCSM.
Кристоф, E., К. Мэйлхес, П. Дюамель (2006), “Адаптация zerotrees использование представлений двоичной цифры со знаком для кодирования трехмерного изображения”, Журнал EURASIP на Обработке изображений и Обработке видеоданных, 2007, чтобы появиться в специальном выпуске на Вейвлетах в Кодировании источника, Коммуникациях, и Сетях, бумаге ID 54679.
Мизити, M., И. Мизити, Г. Оппенхейм, J.-M. Poggi (2007), Вейвлеты и их приложения, Ряд DSP ISTE.
Саид А., В.А. Перлмен (1996), “Новое, быстро, и эффективный кодек изображений на основе разделения набора в иерархических деревьях”, Сделка IEEE на Схемах и Системах для Видео Технологии, Издания 6, № 3, стр 243–250.
Шапиро Дж.М. (1993), “Кодирование встроенного изображения с помощью zerotrees коэффициентов вейвлета”, Сигнал Сделки IEEE P Proc., Издание 41, № 12, стр 3445–3462.
Странг, Г.; Т. Нгуен (1996), вейвлеты и наборы фильтров, Wellesley-Кембриджское нажатие.
Уокер Дж.С. (1999), “Основанное на вейвлете Сжатие изображения”, Висконсинский университет, О-Клэр, Висконсин, США, Подраздел книги Нажатия CRC: Преобразуйте и Сжатие данных. Краткая информация о Вейвлетах и Их Научные Приложения.