Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сжатие изображения при помощи svd 
V
    Опции темы
accessd
Дата 30.3.2007, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.3.2007

Репутация: нет
Всего: нет



может кто занимался сжатием изображений при помощи svd(сингулярное разложение матрицы)
сам метод svd: имеется матрица А, она приводится к следующей форме А = U*W*V, где U имеет 
размер MxN, W - диагональная с сингулярными значениями на главной диагонали, V - 
ортонормированная размером NxN.
объясню суть метода сжатия: изображение разлагается на основные цвета RGB. каждый цвет 
записывается в матрицу. матрицы, назовем их red, green, blue разлагаются с помощью svd.
чтобы сжать мы зануляем некоторые сингулярные числа, вообще они идут в матрице по 
убыванию, в конце есть близкие к нулю, которые не оказывают особого действия на изменение 
изображения.
так вот, например у нас была матрица 16х16, соответственно имеем 16 сингулярных значений.
мы берем например 3, остальные близки к нулю. передаем или сохраняем только 3 столбца 
матрицы U, 3 строки матрицы V, и первые три сингулярных значений.
затем, чтобы восстановить исходное изображение, дополняем остальные элементы матриц 
нулями. перемножаем три восстановленные матрицы U, W, V. в результате умножения получаем 
матрицы red_uncompress, green_uncompress и blue_uncompress. ну и собственно заново 
собираем изображение из этих матриц.
возникла проблема: например есть изображение размером 200х150 в формате bmp. сжимаем при 
150 сингулярных числах, все ok. ниже примерно 135, начинают появляться "цветные точки", 
причем не на всем изображении, а только на определенных частях, на белом, черном и их 
оттенках, само изображение сохраняет структуру и выглядит вполне приемлимо. так вот, если 
уменьшать дальше кол-во сингулярных чисел, то изображение становится все "грязнее". из-за 
чего может такое происходить?
bmp-ха прилагается.. это расжатое изображение

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  japan_uncompress.rar 62,13 Kb
PM MAIL   Вверх
Artemios
Дата 31.3.2007, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 1
Всего: 50



Цитата(accessd @  30.3.2007,  23:22 Найти цитируемый пост)
так вот, если 
уменьшать дальше кол-во сингулярных чисел, то изображение становится все "грязнее". из-за 
чего может такое происходить?

А как еще должно быть, если сжатие с потерями?


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
accessd
Дата 31.3.2007, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.3.2007

Репутация: нет
Всего: нет



Цитата

А как еще должно быть, если сжатие с потерями?

рекомендую глянуть изображение.. загрязняется либо белый фон, либо черный.
к тому же при таком уменьшении использования сингулярных чисел, сжатия пока не наблюдается. для такой картинки, сжатие будет при их кол-ве < 84.
http://www.access1.nm.ru/japan_uncompress.bmp

Это сообщение отредактировал(а) accessd - 31.3.2007, 19:32
PM MAIL   Вверх
accessd
Дата 31.3.2007, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.3.2007

Репутация: нет
Всего: нет



разобрался. проблема решилась прописыванием не хитрых условий в методе умножения матриц, чтобы значения трех составляющих rgb не выходили за границы 0-255.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0602 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.