Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/35: Рейтинг темы: голосов - 35, средняя оценка - 4.63
 Аватар для IrishaIrinaChe
29 / 29 / 3
Регистрация: 23.09.2010
Сообщений: 203

Wavelet - преобразование сжатие изображений

06.12.2012, 22:50. Показов 6675. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, форумчане!
Вот есть маленькая программка, обеспечивающая сжатие и восстановление изображения с помощью вейвлетов.
Она работает правильно =)
Внимание, вопрос!
скажите пожалуйста, что можно улучшить в программе (как показать более подробно этапы сжатия картинки), что нужно изменить в коде, чтобы производить сжатие и восстановление любой картинки, а не M-файла?

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
clc;
close all;
load detfingr; %загрузка файла 
nbc = size(map,1);
wname = 'sym4'; %выбор базисной функции - более полно отражает колебания в выбранном диапазоне частот и наименее чувствительна к краевым эффектам
lev = 3; %уровень разложения данных
 
%реализуем двумерное многоуровневое дискретное разложение данных, заданных
%матрицей X
[c,s] = wavedec2(X,lev,wname); 
% c-матрица, содержащая коэффициенты аппроксимации и детализации горизонтального, вертикального и диагонального разложения. 
% s-матрица, каждый из элементов которой определяет соответствующую ему
% размерность матрицы разложения на уровнях lev. Т е структура собственно
% разложения
 
%    wdcbm2 -порог Берга-Массара для двумерных процедур шумоподавления
% параметры настройки порога
alpha =1.5; % т к производится расчёт, предназанченный для решения сжатия изображений
% prod - вектор-строка, содержащая произведения элементов каждого столбца
m = 2.7*prod(s(1,:)); %самый грубый коэффициент аппроксимации (*1..6)
[thr,nkeep] = wdcbm2(c,s,alpha,m); 
% thr-матрица размером 3*j, содержит значения порогов для всех уровней j
% горизонтакльного, вертикального и диагонального разложений исходного
% изображения
% nkeep - вектор, содержит число коэффициентов разложения, сохраняемых в
% процессе шумоподавления и сжатия данного изображения.
% nkeep[j] =m*((lev+2-j)^alpha)
 
%удаление шумов и сжатие
[xd,cxd,sxd,perf0,perfl2] = wdencmp('lvd',c,s,wname,lev,thr,'h'); % xd-результирующая матрица (Х) - после сжатия и удаления шумов. Используем жёсткую процедуру удаления шумов
colormap(pink(nbc)); 
subplot(2,2,1), image(wcodemat(X,nbc)), 
title('Исходное изображение'); 
subplot (2,2,2), image(wcodemat(xd,nbc)), 
title('Сжатое изображение'); 
xlabl = ['2-norm rec. :', num2str(perfl2)]; 
xlab2 = [' % - zero cfs:  ',num2str(perf0), '%']; 
xlabel([xlabl  xlab2])
%приведены исходный и сжатый отпечатки пальца; при этом более 94 %  коэффициентов обнулено,  а в оставшихся сосредоточено 98 %  от
%энергии всех коэффициентов разложения. Несмотря на то, что сжатие осуществлено в десятки раз,  качество изображения остается вполне 
%хорошим. Поэтому объем архива отпечатков пальцев для криминалистических отделов может быть существенно уменьшен. 
 
% Извлечение коэффициентов аппроксимации и детализации
% последнего уровня
sa2 = appcoef2 (c, s, wname, 0);
sh2 = detcoef2 ('h', c, s, lev);
sv2 = detcoef2 ('v', c, s, lev);
sd2 = detcoef2 ('d', c, s, lev);
% Рисуем изображение
% и то, что осталось после разложения
figure
text(50,50,'\leftarrowПрямое вейвлет-преобразование')
text(100,50, '\leftarrowНЧ- Низкочастотное фильтрование')
text(150, 50, '\leftarrowВЧ - Высокочастотное фильтрование')
 
colormap(pink(nbc)); 
subplot (2,2,1)
image (wcodemat(sa2,nbc)), title ('sa2 - НЧ по строке и столбцу') 
subplot (2,2,2) 
subimage (sh2), title ('sh2 - ВЧ по строке и НЧ по столбцу')
subplot (2,2,3)
subimage (sv2), title ('sv2 - НЧ по строке и ВЧ по столбцу')
subplot (2,2,4)
subimage (sd2), title ('sd2 - ВЧ по строке и столбцу')
 
figure
colormap(pink(nbc));
woman_rec = waverec2 (c, s, wname);
% Восстановленные изображения
subplot(2,2,1), image (wcodemat(woman_rec,nbc)), title ('Восстановление с waverec2')
%очищенное от шумов изображение
[xd,cxd,sxd,perf0,perfl2] = wdencmp('lvd',c,s,wname,lev,thr,'s'); 
subplot(2,2,2), image(wcodemat(xd,nbc)); title('Очищенное изображение')
буду очень благодарна за рекомендации с примерами функций

ps почему-то если просто
Matlab M
1
load file
заменяешь на
Matlab M
1
2
 filename = dir('filename.png');
X = imread( filename.name );
то всё рушится. подскажите, что же делать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2012, 22:50
Ответы с готовыми решениями:

Сжатие изображения в wavelet toolbox
Друзья, нужна помощь. C помощью wavelet toolbox нужно сжать изображение использую 3 вейвлет преобразования и сравнить результаты. Как это...

Wavelet преобразование
Доброго времени суток. Сразу скажу что я новичек в matlab. Поставили задачу, с помощью вейвлет преобразования нужно из входного сигнала,...

Wavelet преобразование изображение
Задание: Перевести изображение из RGB в YCbCr, воспользоваться функцией dwt2, приравнять матрицы горизонт., вертик, диагонал. к 0, затем...

2
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
07.12.2012, 11:16
А просто X = imread('filename.png'); не помогает?
1
 Аватар для IrishaIrinaChe
29 / 29 / 3
Регистрация: 23.09.2010
Сообщений: 203
07.12.2012, 19:02  [ТС]
Зосима, помогает, обработка изображения алгоритмом явно происходит. только вот не получается показать на экран сжатое изображение, восстановленное и очищенное от шумов. помогите, пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.12.2012, 19:02
Помогаю со студенческими работами здесь

Wavelet Analyzer
Приветствую! Проблема такая: не пойму, как записать процедуры, совершаемые в тулбоксе, в виде явного кода (в Editor)... Имеется...

Wavelet исследование на периодичность
Помогите, люди добрые и умные! Есть большая куча (массив) векторов разной длины x{i} (от десятка до сотней тысяч значений) - рядов...

Matlab Wavelet Morlet для Delphi
Добрый день, уважаемые форумчане! У меня следующая проблема. Я использовал в течение нескольких лет для своих научных расчетов Matlab...

Как разложить сигнал с помощью Wavemenu, 1-D Wavelet
Добрый день! Подскажите, пожалуйста, я раскладываю сигнал с помощью Wavemenu, 1-D Wavelet. Все хорошо раскладывает как и положено, но мне...

Пропадает часть графика при работе с Subplot и Wavelet toolbox
Собрал из частей кода из Help(a) программу которая должна была выводить 3 графика "Анализируемый сигнал" "Scalogram" и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru