Обработка изображений на основе Вейвлет-преобразований

Системы передачи данных и цифровой обработки сигналов. Дискретное вейвлет преобразование изображения. Публикация ортонормальной системы базисных функций с локальной областью определения. Поиск изображений по образцу и многомасштабное редактирование.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 07.08.2018
Размер файла 853,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Федеральное агентство связи

Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования

"Поволжский государственный университет телекоммуникаций и информатики"

Факультет Заочного обучения

Направление (специальность) Информационные системы и технологии

Кафедра Информационных систем и технологий

Выпускная квалификационная работа (бакалаврская работа)

Обработка изображений на основе Вейвлет-преобразований

Кочетков С.Г.

Самара 2017

Реферат

Название

Обработка изображений на основе Вейвлет-преобразований

Автор

Кочетков Станислав Геннадьевич

Научный руководитель

Овсянников Александр Сергеевич

Ключевые слова

С++, вейвлет-преобразования, обработка изображений, компрессия изображений

Дата публикации

2017 год

Библиографическое описание

Кочетков С.Г. Обработка изображений на основе Вейвлет-преобразований [Текст]: дипломная работа / С.Г. Кочетков Поволжский государственный университет телекоммуникаций и информатики (ПГУТИ). Факультет информационных систем и технологий (ФИСТ). Кафедра информационных систем и технологий (ИСТ): науч.рук. Овсянников А.С. - Самара. 2017. - 60 с.

Аннотация

Подробно рассмотрена предметная область исследований. Наиболее широко дискретные вейвлет-преобразования используется в кодировании сигналов, где свойства преобразования используются для уменьшения избыточности в представлении дискретных сигналов, часто-- как первый этап в компрессии данных. На примере данной работы, была рассмотрена компрессия изображений.

План

Введение

1. Понятие вейвлет-преобразования

1.1 Ортогональное вейвлет-преобразование

2. Системы передачи данных и цифровой обработки сигналов

3. Дискретное вейвлет преобразование изображения

3.1 Сжатие изображений. JPEG 2000

3.2 Поиск изображений по образцу

3.3 Многомасштабное редактирование

3.4 Адаптивные вейвлет-преобразования

4. Практическая часть

4.1 Выбор средств разработки

4.2 Разработка приложения

Заключение

Список использованных источников

Приложение

Введение

Некоторые идеи теории вейвлетов появились очень давно. Например, уже в 1910 году А. Хаар опубликовал полную ортонормальную систему базисных функций с локальной областью определения (теперь они называются вейвлетами Хаара). Первое упоминание о вейвлетах появилось в литературе по цифровой обработке и анализу сейсмических сигналов (работы А. Гроссмана и Ж. Морле). В последнее время возникло и оформилось целое научное направление, связанное с вейвлет-анализом и теорией вейвлет-преобразования. Вейвлеты широко применяются для фильтрации и предварительной обработки данных, анализа состояния и прогнозирования ситуации на фондовых рынках, распознавания образов, при обработке и синтезе различных сигналов, например речевых, медицинских, для решения задач сжатия и обработки изображений, при обучении нейросетей и во многих других случаях. цифровой изображение ортонормальный

Несмотря на то, что теория вейвлет-преобразования уже в основном разработана, точного определения, что же такое "вейвлет", какие функции можно назвать вейвлетами, насколько мне известно, не существует. Вейвлеты могут быть ортогональными, полуортогональными, биортогональными. Эти функции могут быть симметричными, асимметричными и несимметричными. Различают вейвлеты с компактной областью определения и не имеющие таковой. Некоторые функции имеют аналитическое выражение, другие - быстрый алгоритм вычисления связанного с ними вейвлет-преобразования.

Все вышесказанное определило актуальность темы работы - Обработка изображений на основе Вейвлет-преобразований

Целью дипломного проекта (работы) является разработка приложения позволяющего сжимать изображения на основе вейвлет преобразований.

Для достижения поставленной цели необходимо решить следующие основные задачи:

1) Изучить теоретическую часть по теме ВКР

2) Подготовить необходимое программное обеспечение

3) Разработать приложение для обработки изображений

4) Описать основные возможности разработанного приложения.

Объектом исследования является вейвлет-преобразование.

Предметом исследования применение вейвлет-преобразования к работе с изображениями.

Основными источниками информации для написания работы послужили книги, а так же публикации в открытом доступе сети Интернет.

Цель и задачи написания работы определили ее структуру, которая состоит из введения, трех глав и заключения.

Во введении обосновывается актуальность работы, цель, задачи, объект и предмет исследования.

Первая глава рассматривает вейвлет-преобразования в целом, историю открытия, области применения.

Вторая глава описывает конкретное применение в работе с изображениями.

Третья глава - включает в себя практическую часть.

В заключении сделаны основные выводы и результаты по проделанной работе.

1. Понятие вейвлет-преобразования

Попробуем дать вначале неформальное определение вейвлет-преобразования, а затем - его точное математическое обоснование.

Рассмотрим задачу, которая очень часто встречается на практике: у нас есть сигнал (а сигналом может быть все, что угодно, начиная от записи показаний датчика и кончая оцифрованной речью или изображением). Идея многомасштабного анализа (multiscale analysis, multiresolutional analysis) заключается в том, чтобы взглянуть на сигнал сначала вплотную - под микроскопом, затем через лупу, потом отойти на пару шагов, потом посмотреть издалека

Что это нам дает? Во-первых, мы можем, путем последовательного огрубления (или уточнения) сигнала выявлять его локальные особенности (ударение в речи или характерные детали изображения) и подразделять их по интенсивности. Во-вторых, таким образом, обнаруживается динамика изменения сигнала в зависимости от масштаба. Если резкие скачки (например, аварийное отклонение показаний датчика) во многих случаях видны "невооруженным глазом", то взаимодействия событий на мелких масштабах, перерастающие в крупномасштабные явления (так, мощный транспортный поток состоит из движения многих отдельных автомобилей), увидеть очень сложно. И наоборот, сосредоточившись только на мелких деталях, можно не заметить явлений, происходящих на глобальном уровне.

Идея применения вейвлетов для многомасштабного анализа заключается в том, что разложение сигнала производится по базису, образованному сдвигами и разномасштабными копиями функции-прототипа (то есть вейвлет-преобразование по своей сути является фрактальным). Такие базисные функции называются вейвлетами (wavelet), если они определены на пространстве L2(R) (пространство комплекснозначных функций f(t) на прямой с ограниченной энергией), колеблются вокруг оси абсцисс и быстро сходятся к нулю по мере увеличения абсолютного значения аргумента (рис.1.1). Оговоримся сразу, что это определение не претендует на полноту и точность, а дает лишь некий "словесный портрет" вейвлета.

Таким образом, свертка сигнала с одним из вейвлетов позволяет выделить характерные особенности сигнала в области локализации этого вейвлета, причем чем больший масштаб имеет вейвлет, тем более широкая область сигнала будет оказывать влияние на результат свертки.

Рис.1.1 - Вейвлет "Сомбреро"

Согласно принципу неопределенности, чем лучше функция сконцентрирована во времени, тем больше она размазана в частотной области. При перемасштабировании функции произведение временного и частотного диапазонов остается постоянным и представляет собой площадь ячейки в частотно-временной (фазовой) плоскости. Преимущество вейвлет-преобразования перед, например, преобразованием Габора заключается в том, что оно покрывает фазовую плоскость ячейками одинаковой площади, но разной формы.

Это позволяет хорошо локализовать низкочастотные детали сигнала в частотной области (преобладающие гармоники), а высокочастотные - во временной (резкие скачки, пики и т.п.). Более того, вейвлет-анализ позволяет исследовать поведение фрактальных функций - то есть не имеющих производных ни в одной своей точке!

1.1 Ортогональное вейвлет-преобразование

Вейвлет-преобразование несет огромное количество информации о сигнале, но, с другой стороны, обладает сильной избыточностью, так как каждая точка фазовой плоскости оказывает влияние на его результат. Вообще говоря, для точного восстановления сигнала достаточно знать его вейвлет-преобразование на некоторой довольно редкой решетке в фазовой плоскости Следовательно, и вся информация о сигнале содержится в этом довольно небольшом наборе значений. Идея здесь заключается в том, чтобы масштабировать вейвлет в некоторое постоянное (например, 2) число раз, и смещать его во времени на фиксированное расстояние, зависящее от масштаба. При этом все сдвиги одного масштаба должны быть попарно ортогональны - такие вейвлеты называются ортогональными. При таком преобразовании выполняется свертка сигнала с некоторой функцией (так называемой скейлинг-функцией, о ее свойствах мы расскажем позже) и с вейвлетом, связанным с этой скейлинг-функцией. В результате мы получаем "сглаженную" версию исходного сигнала и набор "деталей", отличающих сглаженный сигнал от исходного. Последовательно применяя такое преобразование, мы можем получить результат нужной нам степени детальности (гладкости) и набор деталей на разных масштабах - то, о чем говорили в начале статьи. Более того, применив вейвлет-преобразование к заинтересовавшей нас детали сигнала, мы можем получить ее "увеличенное изображение". И наоборот, отбросив несущественные детали и выполнив обратное преобразование, мы получим сигнал, очищенный от шумов и случайных выбросов (например, "убрать" случайно попавшую в кадр птицу на фотографии здания).

Дискретное вейвлет-преобразование и другие направления вейвлет-анализа.

Очевидно, идея использовать вейвлет-преобразование для обработки дискретных данных является весьма привлекательной (дискретизация данных необходима, например, при их обработке на ЭВМ). Основная трудность заключается в том, что формулы для дискретного вейвлет-преобразования нельзя получить просто дискретизацией соответствующих формул непрерывного преобразования. К счастью, И.Добеши удалось найти метод, позволяющий построить (бесконечную) серию ортогональных вейвлетов, каждый из которых определяется конечным числом коэффициентов. Стало возможным построить алгоритм, реализующий быстрое вейвлет-преобразование на дискретных данных (алгоритм Малла). Достоинство этого алгоритма, помимо всего вышесказанного, заключается в его простоте и высокой скорости: и на разложение, и на восстановление требуется порядка cN операций, где с - число коэффициентов, а N - длина выборки.

В последнее время теория вейвлет-преобразования переживает просто революционный рост. Появились и развиваются такие направления, как биортогональные вейвлеты, мультивейвлеты, вейвлет-пакеты, лифтинг и т.д.

В заключение перечислим некоторые области, где использование вейвлетов может оказаться (или уже является) весьма перспективным.:

Обработка экспериментальных данных. Поскольку вейвлеты появились именно как механизм обработки экспериментальных данных, их применение для решения подобных задач представляется весьма привлекательным до сих пор. Вейвлет-преобразование дает наиболее наглядную и информативную картину результатов эксперимента, позволяет очистить исходные данные от шумов и случайных искажений, и даже "на глаз" подметить некоторые особенности данных и направление их дальнейшей обработки и анализа. Кроме того, вейвлеты хорошо подходят для анализа нестационарных сигналов, возникающих в медицине, анализе фондовых рынков и других областях.

Обработка изображений. Наше зрение устроено так, что мы сосредотачиваем свое внимание на существенных деталях изображения, отсекая ненужное. Используя вейвлет-преобразование, мы можем сгладить или выделить некоторые детали изображения, увеличить или уменьшить его, выделить важные детали и даже повысить его качество!

Сжатие данных. Особенностью ортогонального многомасштабного анализа является то, что для достаточно гладких данных полученные в результате преобразования детали в основном близки по величине к нулю и, следовательно, очень хорошо сжимаются обычными статистическими методами. Огромным достоинством вейвлет-преобразования является то, что оно не вносит дополнительной избыточности в исходные данные, и сигнал может быть полностью восстановлен с использованием тех же самых фильтров. Кроме того, отделение в результате преобразования деталей от основного сигнала позволяет очень просто реализовать сжатие с потерями - достаточно просто отбросить детали на тех масштабах, где они несущественны! Достаточно сказать, что изображение, обработанное вейвлетами, можно сжать в 3-10 раз без существенных потерь информации (а с допустимыми потерями - до 300 раз!). В качестве примера отметим, что вейвлет-преобразование положено в основу стандарта сжатия данных MPEG4

Нейросети и другие механизмы анализа данных. Большие трудности при обучении нейросетей (или настройке других механизмов анализа данных) создает сильная зашумленность данных или наличие большого числа "особых случаев" (случайные выбросы, пропуски, нелинейные искажения и т.п.). Такие помехи способны скрывать характерные особенности данных или выдавать себя за них и могут сильно ухудшить результаты обучения. Поэтому рекомендуется очистить данные, прежде чем анализировать их. По уже приведенным выше соображениям, а также благодаря наличию быстрых и эффективных алгоритмов реализации, вейвлеты представляются весьма удобным и перспективным механизмом очистки и предварительной обработки данных для использования их в статистических и бизнес-приложениях, системах искусственного интеллекта и т.п.

2. Системы передачи данных и цифровой обработки сигналов

Благодаря высокой эффективности алгоритмов и устойчивости к воздействию помех, вейвлет-преобразование является мощным инструментом в тех областях, где традиционно использовались другие методы анализа данных, например, преобразование Фурье. Возможность применения уже существующих методов обработки результатов преобразования, а также характерные особенности поведения вейвлет-преобразования в частотно-временной области позволяют существенно расширить и дополнить возможности подобных систем.

Несмотря на то, что математический аппарат вейвлет-анализа хорошо разработан и теория, в общем, оформилась, вейвлеты оставляют обширное поле для исследований. Достаточно сказать, что выбор вейвлета, наиболее подходящего для анализа конкретных данных, представляет собой скорее искусство, чем рутинную процедуру. Кроме того, огромное значение имеет задача разработки приложений, использующих вейвлет-анализ - как в перечисленных областях, так и во многих других, перечислить которые просто не представляется возможным.

Цифровая обработка сигнала требует его дискретизации. Как и в случае преобразования Фурье существует дискретная форма вейвлет преобразования. Выше было отмечена определенная степень свободы в выборе базиса вейвлет преобразования. В данном разделе нами будет использоваться один из самых простых вейлвет базисов - базис Хаара.

Рассмотрим дискретизированный и квантованный сигнал - рисунок 2.1 (а). Будем постепенно усреднять данный сигнал, усредняя попарно его отсчеты. Таким образом, каждый шаг усреднения будет сокращать разрешение сигнала в 2 раза (т.е. для его представления будет требоваться в два раза меньшее число отсчетов). Однако при таком усреднении мы теряем часть информации о сигнале, для того чтобы восстановить сигнал после усреднения нам потребуется дополнительная информация. Будем сохранять разности между усредненным отсчетом и отсчетами, из которых усредненный отсчет состоит при более высоком разрешении. Данные разности показывают детали сигнала - его флуктуации вокруг среднего при данном уровне разрешения. На рисунке 2.1 детализирующее коэффициенты показаны в правой части рисунков 2.1 (б, в, г, д). Теперь воспользовавшись детализирующими коэффициентами мы сможем восстановить прежнюю форму сигнала.

.

Рис. 2.1 - Усреднение дискретизированного сигнала

Таким образом, для того чтобы перейти от одного, более низкого уровня разрешения к более детализированному уровню нам требуется знать усредненные отсчеты сигнала и детализирующие коэффициенты.

Очевидно, что если мы выберем в качестве единичную ступеньку, изображенную на рисунке 2.2 (а), то, сдвигая необходимое число раз, мы сможем представить сигнал 2.1 с помощью суммы таких единичных ступенек. Таким образом, мы ввели базис, в котором мы можем представить сигнал 2.1. Отметим, что поскольку функции, изображенные на рисунке 2.2, не пересекаются между собой, то построенный нами базис является ортогональным. Функции называются масштабирующими функциями.

Рисунок 2.2 -масштабируемые функции

Теперь необходимо ввести некоторый базис для представления детализирующих коэффициентов. Такой базис был введен Хааром и его базисные функции, названные вейвлетами, изображены на рисунке 2.2 (б).

Рассмотрим теперь процедуру усреднения сигнала, проиллюстрированную на рисунке 2.1, с точки зрения только что введенных базисов. Рассмотрим конкретный сигнал, заданный следующим вектором значений - [9 7 3 5]. С помощью масштабирующей функции Хаара мы можем представить сигнал так, как это изображено на рисунке 2.3.

Рис. 2.3 - Представление исходного сигнала в базисе Хаара

Проведем процедуру декомпозиции сигнала на две части - усредненный сигнал с двое уменьшенным разрешением и детализирующие коэффициенты. Получим следующий вектор - = [8 4 | 1 -1], представление которого в базисе Хаара с помощью масштабирующей функции и вейвлетов изображено на рисунке 2.4

Рис. 2.4 - Представление усредненного сигнала в базисе Хаара

Выделим в векторе [8 4 | 1 -1] часть, представляющую усредненный сигнал (первая половина вектора), и проведем относительно неё повторное усреднение и нахождение детализирующих коэффициентов. Получим следующий вектор - [6 | 2 1 -1] представление которого в базисе Хаара с помощью масштабирующей функции и вейвлетов изображено на рис. 2.5.

Рис. 2.5 - Представление дважды усредненного сигнала в базисе Хаара

Таким образом, мы представили исходный сигнал с помощью его усредненной части (среднего по сигналу) и детализирующих коэффициентов. Отметим, что размерность исходного и преобразованного векторов совпадают, это говорит о том, что при преобразовании не было потерь информации и, следовательно, возможно полное восстановление исходного вектора. Шаги описанной процедуры ещё раз проиллюстрированы на рисунке 2.6.

Рисунок 2.6 - Представление сигнала в базисе Хаара

Отметим, что если мы будем восстанавливать сигнал после его разложения в базисе Хаара, то мы можем остановить процесс восстановления "на полпути" и получить представление сигнала с заданным разрешением. Другими словами нами получен математический инструмент изменения разрешения сигнала.

3. Дискретное вейвлет преобразование изображения

Рассмотрим вейвлет преобразование изображения. Общая идея вейвлет преобразования многомерных сигналов заключается в декомпозиции многомерного сигнала до одномерных сигналов и, последующего их вейвлет преобразования с композицией результатов. Существуют два метода такого преобразования - стандартное и нестандартное вейвлет преобразование. Этими методы различаются порядком применения вейвлет преобразования я к декомпозированным одномерным сигналам. Ниже будет рассмотрено нестандартное вейвлет преобразование.

При нестандартном вейвлет преобразовании изображения вейвлет преобразование попеременно применяется то к строкам, то к столбцам изображения. Иллюстрация этого метода представлена на рисунке 2.7.

Рис. 3.1 - Нестандартное вейвлет преобразование изображения

Отметим, что также как и при дискретном вейвлет преобразовании одномерного сигнала, при вейвлет преобразовании изображения происходит уменьшение разрешения изображения при его усреднении и не происходит потерь информации.

На рисунке 3.1 показан также псевдокод рекурсивного применения DWT к изображению. При этом на каждом шаге преобразования удобно представлять изображение никак матрицу, а как вектор

3.1 Сжатие изображений. JPEG 2000

Основная идея, используемая при сжатии сигналов с помощью вейвлет преобразования, заключается в том, чтобы отбрасывать детализирующие коэффициенты, значения которых близки к нулю. В 1999 году был разработан новый стандарт сжатия изображений, названный JPEG 2000 и призванный заменить стандартный алгоритм сжатия JPEG. Одним из основных отличий JPEG 2000 от JPEG является изменение основной процедуры преобразования изображения. В то время как в JPEG использовалось преобразование Фурье и в JPEG 2000 используется вейвлет преобразование, что позволило не только улучшить визуальное качество изображения, что демонстрирует рисунок 3.2, но и добавить некоторую интересную функциональность, принципиально не достижимую в JPEG

Рисунок 3.2 - Сравнение визуального качества изображений сжатых по алгоритмам JPEG и JPEG2000

Одной из таких дополнительных функции является ROI (Region of Interest). ROI позволяет динамически в пространстве и во времени повышать разрешение изображения. Под динамическим повышением разрешения изображения в пространстве понимается то, что мы можем повысить разрешение только выделенной области изображения.

Под динамическим повышением разрешения изображения во времени понимается то, что мы можем повышать разрешение выделенной области изображения постепенно, шаг за шагом. Пример использования ROI показан на рисунке 3.3.

Рисунок 3.3 - Пример использования ROI

Существует несколько алгоритмов реализации ROI, в частности мы можем, как бы добавлять детализирующие коэффициенты в заданную пользователем область. Для более детального описания данного алгоритма требуется понимание особенностей кодирования информации в JPEG 2000, описание которых выходит за рамки данной работы.

3.2 Поиск изображений по образцу

Другим применением дискретного вейвлет преобразования является поиск изображений по образцу. Рассмотрим в начале работу такой поисковой системы с точки зрения пользователя. Пусть существует некоторая база данных, в которой хранятся изображения. Задачи поиска изображений по образцу возникают либо когда у пользователя есть изображение плохого качества (например, отсканированное изображение с низким разрешением) и пользователь хочет найти это же изображение, но с более высоким разрешением или без дефектов, либо когда пользователь просто хочет найти изображение и способен нарисовать от руки его примерный эскиз.

Очевидно, для решения подобной задачи необходимо ввести некоторую метрику, которая позволяла бы осуществлять поиск изображения в базе данных по образцу. То есть метрику, которая была бы мерой сходства образца и изображений в базе данных. В качества таких метрик возможно использование L1 и L2 норм, формулы которых записаны ниже:

Очевидно, однако, что вычисление подобных метрик является крайне трудоемким процессом. Так, в частности, при поиске изображения среди 20000 изображений продолжительность работы метода, основанного на L1 норме, в среднем составляет 14 минут, в то время как описываемый ниже метод, основанный на DWT, находит изображение в среднем за 0,5 секунды [1].

Основная идея метода заключается в описании каждого изображения с помощью 20 наибольших детализирующих коэффициентов его вейвлет разложения. Эти двадцать коэффициентов называются ярлыком изображения ("ключевыми словами" изображения в базисе вейвлетов) и именно по ним ведется поиск в базе данных. Иллюстрация данного метода представлена на рисунке 3.4.

Рис. 3.4 - Иллюстрация работы алгоритма поиска изображения по образцу

3.3 Многомасштабное редактирование

Как уже неоднократно подчеркивалось, основу различных применений вейлетов составляет возможность простого и быстрого изменения разрешения сигнала, преобразованного с помощью DWT. Но эта черта вейвлетов негде так не очевидна как при многомасштабном редактировании изображений и трехмерных моделей. Дело в том, что при многомасштабном редактировании изменение разрешения редактируемого объекта происходит интерактивно, что особенно хорошо выявляет описанные преимущества вейвлетов. Рисунок 3.6 иллюстрирует идею многомасштабного редактирования.

Рис. 3.6 - Многомасштабное редактирование трехмерной модели

Как мы можем видеть на рисунке 3.6 представлена трехмерная модель головы человека, при этом модель представлена в трех разных разрешениях, переход между этими разрешениями, как нетрудно догадаться, осуществляется с помощью добавления детализирующих, вейлвет коэффициентов. При этом само редактирование происходит по-разному при разных разрешениях. По сути дела с уменьшением разрешения модели увеличивается радиус (масштаб) влияния редактора.

Список приложений вейвлетов чрезвычайно широк, причем области их применения не ограничиваются цифровой обработкой сигналов, но охватывают также физическое моделирование, численные методы и другие области науки.

На мой взгляд, такой интерес к вейвлетам вызван двумя факторами, во-первых, они сделали то, что долгое время не удавалось никому - предоставить альтернативу спектральному анализу и предоставить качественный инструмент анализа нестационарных сигналов, во-вторых, они представляют сигнал в пространственно-временной области, что существенно проще для понимания человеком.

3.4 Адаптивные вейвлет-преобразования

Как уже было сказано выше, вейвлет-преобразование изображения осуществляется путем каскадного соединения банков фильтров по НЧ составляющей сигнала. Такой подход применим при неявном предположении, что основная информация о сигнале содержится в его НЧ области. В общем случае это предположение неверно. Желательно было бы иметь схему способную адаптироваться к конкретным свойствам сигнала. Был разработан целый ряд таких схем, и они получили название "пакет вейвлетов".

Метод пакета вейвлетов основан на определении области, по которой выгоднее производить каскадирование банков фильтров. Для этого сначала проводится каскадирование по обеим полосам. Получается полное, сбалансированное дерево.

Далее, вводится некоторая функция стоимости, на основе которой определяется наилучший путь по этому дереву.

Пакеты вейвлетов были разработаны и изучены Р. Койфманом и М. Викерхаузером. В качестве стоимости они использовали энтропию, понимаемую ими, как концентрацию числа коэффициентов, требующихся для описания сигнала. Данная функция M будет большой, если коэффициенты примерно одной величины, и малой, если все, кроме нескольких коэффициентов, близки к нулю.

Энтропия вычисляется для каждого узла полного дерева. Далее, сравнивается энтропия двух потомков и их общего предка на дереве. Если энтропия предка оказалась меньше, то от декомпозиции отказываются. Алгоритм рекурсивно продолжается до достижения вершины дерева.

Для решения задачи сжатия изображений выбор энтропии в качестве функции стоимости, по-видимому, не является наилучшим. В некоторых работах в качестве функции стоимости используется функционал Лагранжа:

J = D + лR,

где D - это искажение (средний квадрат ошибки), вносимое за счет непередачи коэффициента узла, R - количество бит, требуемых для описания коэффициента этого узла, л - множитель Лагранжа. Алгоритм принятия решения такой же, как и в предыдущем методе. Этот алгоритм получил название одиночного (частотного) дерева.

Вейвлет-пакеты являются более гибким средством, чем вейвлет-преобразование, но, не смотря на это, они не изменяются в пространстве. Поскольку в данной статье рассматривается применение вейвлет-преобразований к кодированию видеопоследовательностей (и изображений, как их частного случая), то имеет смысл рассмотреть алгоритмы, учитывающие изменение исходного сигнала в пространстве. Такие методы получили название алгоритма двойного дерева.

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

Далее, для каждой области строится разложение пакетами вейвлетов. Затем значения стоимостей Лагранжа каждой области записываются в виде бинарного дерева.

К получившемуся дереву применяется алгоритм одиночного дерева для нахождения наилучшего разбиения исходного сигнала на области.

Алгоритм двойного дерева обладает некоторой асимметричностью. Действительно, деревья в частотной области строятся над пространственными областями, а не наоборот. Этот недостаток можно устранить, построив дерево, в котором кандидатом на дальнейшее разбиение будет являться как пространственная область, так и частотная субполоса. Это дерево (так называемое частотно-пространственное дерево), имеет структуру квадр дерева.

В самом деле, каждый родительский узел имеет двух пространственных и двух частотных потомков. Обрезание такого дерева происходит путем сравнения стоимостей

Лагранжа: сравниваются пространственные и частотные пары в направлении от листьев к корню дерева. В результате выполнения алгоритма получается оптимальное бинарное дерево разбиения по частоте и пространству полной глубины.

В заключение темы адаптивных вейвлет-преобразований, приведем значения вычислительной сложности всех трех алгоритмов:

Алгоритм

Сложность вычислений

одиночное дерево

O (Nd)

двойное дерево

O (Nd 2)

пространственно-частотное дерево

O (N 2 d)

где N - размерность сигнала, d - максимальная высота дерева.

Вейвлет-кодер состоит из трех основных частей: декоррелирующее преобразование, процедура квантования и энтропийное кодирование. Рассмотрим каждую составляющую подробно.

Выбор оптимального базиса вейвлетов чрезвычайно сложная и вряд ли решаемая задача. Известен ряд критериев построения "хороших" вейвлетов, среди которых наиболее важными являются: гладкость, точность аппроксимации, величина области определения, частотная избирательность. К сожалению, на данный момент наилучшая комбинация этих свойств неизвестна. Более того, в последних работах требование гладкости базиса подвергается сомнению.

Простейшим видом вейвлет-базиса для изображений является разделимый базис, получаемый сжатием и растяжением одномерных вейвлетов. Использование разделимого преобразования сводит проблему поиска эффективного базиса к одномерному случаю, что сильно упрощает задачу, и почти все известные кодеры используют этот подход. Однако неразделимые базисы могут быть более эффективными.

Прототипами базисных функций разделимого преобразования являются функции ц (x)ц (y), ц (x)(y), (x)ц(y), (x)(y) . На каждом шаге преобразования выполняется не одно, а два разбиения по частоте: сначала по строкам, затем по столбцам изображения.

Д. Вилласенор систематически протестировал все биортогональные блоки фильтров минимального порядка с длиной фильтра не более 36. Наилучшим фильтром оказался сплайновый фильтр 7/9. Этот фильтр наиболее часто используется в вейвлет-кодерах изображений.

Далее, традиционное кодирование вейвлет-коэффициентов основано на предположении, что большая часть энергии сосредоточена в малом числе коэффициентов, которые квантуются в соответствии с их значением. Как показывает практика, это предположение бывает неверно.

Традиционное кодирование может быть улучшено путем введения операторов выбора. Вместо квантования коэффициентов в заранее определенном порядке, кодер может выбирать нужные для кодирования элементы (наиболее значимые). Наиболее значительным результатом этого подхода является разработка алгоритма нуль-дерева и его модификаций.

Впервые идея нуль-дерева была предложена Л. Льюисом и Г. Ноулесом. В их алгоритме применялась древовидная структура данных для описания вейвлет-коэффициентов. Такая структура получается в результате применения двухканального разделимого вейвлет -преобразования. Корневой узел дерева представляет коэффициент в самой НЧ области и имеет три потомка. Узлы дерева соответствуют вейвлет-коэффициентам масштаба, равного их высоте в дереве. Каждый узел имеет четыре потомка, соответствующих вейвлет-коэффициентам следующего уровня и того же пространственного расположения.

Для каждого из коэффициентов самой НЧ области существуют три таких дерева.

Квантование нуль-дерева основано на наблюдении, что если коэффициент мал, то и все его потомки на дереве зачастую тоже малы. Это объясняется тем, что значимые коэффициенты возникают вблизи контуров и текстур, которые локальны. Дерево или поддерево, которое содержит только незначимые коэффициенты, называется нуль-деревом.

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

Особую эффективность этому алгоритму придает совместное кодирование нулей при помощи кодера длин серий (run-length encoder). Для повышения эффективности на вход кодера коэффициенты должны подаваться в определенном порядке, обеспечивающем наибольшие длины последовательностей нулей. Например, в JPEG это зигзагообразное сканирование. Наиболее важным вкладом Льюиса и Ноулеса была демонстрация того, что область вейвлет-коэффициентов хорошо приспособлена для работы такого кодера. В самом деле, генерируются очень длинные последовательности нулей, и нет нужды передавать их длины, поскольку высота дерева известна.

Характеристики этого алгоритма незначительно превосходят JPEG, хотя визуальное качество изображения заметно лучше. Недостатком алгоритма является способ распознавания нуль-дерева. Как было отмечено, если коэффициент мал, то и его потомки малы. В случае если это не так, данный алгоритм ведет к большим искажениям. Преимуществом алгоритма является его вычислительная простота.

Следующее поколение кодеров, в частности алгоритмы Шапиро и Саи-да-Перельмана, улучшают способ распознавания нуль-дерева.

Шапиро разработал так называемый алгоритм вложенного нуль-дерева

(Embedded Zerotree Wavelet encoder - EZW). Он основан на передаче и ненулевых данных, и некоторой карты значений. Если имеется незначащий родительский узел, то очень вероятно, что его потомки тоже будут незначимы. Так что в большинстве случаев генерируется символ нуль-дерева. Если один или больше потомков незначимого узла являются значимыми, то генерируется символ "изолированного нуля". Вероятность этого события ниже, следовательно, для кодирования требуется меньше бит.

Алгоритм EZW генерирует вложенный, иерархический код. Это позволяет осуществить прогрессивную передачу изображения последовательным уточнением при приеме. Подобные коды имеют большой практический интерес по следующим причинам:

· возможность точного регулирования скорости передачи;

· возможность восстановления всего изображения при прекращении приема декодером в любой точке. При этом изображение будет максимально хорошего качества для данного числа принятых бит;

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

Алгоритм EZW генерирует вложенный код побитово следующим образом. В начале выполняется частичное упорядочение вейвлет-коэффициентов путем сравнения каждого коэффициента (ВК) с некоторым пороговым значением Т. Если ВК < Т, то коэффициент считаем значимым, иначе - незначимым. Сканирование производится от НЧ полос к ВЧ. Для кодирования знака и позиции ВК используется двухбитный символ:

"±" - знак ВК,

"0" - показывает, что ВК незначащий,

"корень нуль-дерева" - показывает, что ВК незначащий со всеми своими потомками (ВК - является корнем нуль-дерева), т.е. используется межполосная, пространственная корреляция ВК. После генерации и передачи карты значений для значащих коэффициентов должны быть переданы биты, уточняющие их значение ("карта данных"). Далее карта значений и карта данных сжимаются арифметическим кодером. В том случае, если не исчерпан ресурс скорости передачи, порог Т делится на 2 и процесс повторяется.

На начальных итерациях (при большом Т) в карте значений будет встречаться много нулей. Роль нуль-дерева заключается в предотвращении пере-дачи лишних нулей. Символ нуль-дерева может снова и снова генерироваться для данного ВК, пока он не станет больше порогового значения, и тогда будет передано квантованное значение ВК.

А. Саид и В. Перельман улучшили алгоритм EZW. Их версия кодера получила название "установка подразделений в иерархических деревьях" (Set Partition In Hierarchical Trees - SPIHT). Он основан на обнаружении схожих фрагментов в различных поддеревьях вейвлет-коэффициентов.

Обычно в алгоритмах кодирования изображений используется скалярное квантование. Числовая прямая разбивается на отрезки равной длины (неравномерная сетка порождает неравномерное скалярное квантование).

Далее, квантуемый элемент, попадающий в какой-то отрезок, заменяется центром этого отрезка.

Более эффективным методом квантования является векторное квантование. Этот алгоритм состоит из двух этапов: составления кодовой книги и собственно кодирования. В кодовой книге хранятся взвешенные комбинации двумерных блоков коэффициентов. Каждому блоку приписан его код, получаемый посредством алгоритма Хаффмана. Кодирование состоит из нахождения для каждого кодируемого блока ближайшего блока из кодовой книги относительно некоторой меры, например среднеквадратичной разности. В выходной поток записываются соответствующие коды ближайших блоков. Недостаток этого метода в том, что он требует хранения кодовой книги. Однако, если кодовая книга составлена из элементов самого изображения, то затраты на передачу кодовой книги - минимальны.

Субоптимальное энтропийное кодирование можно реализовать при помощи алгоритма арифметического кодирования. Кодеру требуется оценить распределение квантованных коэффициентов. Эта оценка получается путем аппроксимации распределения коэффициентов гауссовской плотностью и вычислением параметров распределения. Оценка параметров может производиться и в процессе работы, "на ходу". Такой подход позволяет учитывать локальные изменения статистики изображения.

Ввиду того, что изображение не является случайным гауссовским источником, коэффициенты преобразования обладают определенной структурой. Энтропийный кодер может каким-то образом использовать эту структуру, осуществляя предсказание параметров. В ряде работ отмечалось, что это приводит к незначительному улучшению эффективности.

На практике вместо арифметического кодера используется кодер Хаффмана. Причина заключается в меньшей вычислительной сложности алгоритма Хаффмана, а также в том, что большинство вариаций алгоритма арифметического кодирования запатентованы. Однако, поскольку патент имеет ограниченный срок действия (а у большей части патентов этот срок истек в 2001 году), в скором времени возможно появление целой серии кодеров, использующих арифметическое кодирование.

Современные исследования в области сжатия изображений ведутся по разным направлениям: нелинейные вейвлет-преобразования, помехозащищенные кодеры и т.д.

Особый интерес представляет адаптация вейвлет-кодирования изображений для кодирования видео. Здесь можно сочетать внутрикадровое кодирование с межкадровым предсказанием, аналогично стандарту MPEG4. Можно также рассматривать видеопоследовательность как трехмерный сигнал и применять трехмерный вейвлет-анализ. Здесь возникают трудности с представлением получающейся древовидной структуры, но работы в этом направлении активно ведутся.

В заключение стоит отметить, что вейвлеты и сопутствующие им идеи внесли существенный вклад в теорию и практику кодирования изображений и, по-видимому, будут оставаться основным направлением исследований в этой области в ближайшем будущем.

4. Практическая часть

4.1 Выбор средств разработки

При выборе средств для разработки крупного программного продукта необходимо учесть множество различных аспектов, наиболее важнейшим из которых является язык программирования, потому что он в значительной степени определяет другие доступные средства. Например, для разработки пользовательского графического интерфейса разработчикам необходима GUI-библиотека, предоставляющая готовые элементы интерфейса, такие, как кнопки и меню. Так как выбор GUI-библиотеки оказывает большое влияние на разработку проекта, часто ее выбор осуществляется первым, а язык программирования определяется из числа доступных для этой библиотеки языков. Обычно, язык программирования определяется библиотекой однозначно.

Другие компоненты средств разработки, такие, как библиотеки доступа к базам данных или библиотеки коммуникаций, также должны быть приняты во внимание, но они не оказывают такого влияния на разработку проекта, как библиотеки GUI.

Часто при обсуждении преимуществ и недостатков различных языков программирования доводы сводятся к аргументам, основанным скорее на личном опыте и предпочтениях, чем на объективных критериях. Конечно же, при выборе языка программирования личные предпочтения и опыт разработчика должны быть учтены, но так как эти критерии субъективны, они здесь не принимаются во внимание. Вместо этого мы рассмотрим продуктивность программирования, производительность работы приложения и эффективность использования памяти, потому что эти критерии могут быть определены количественно и могут быть исследованы с научной точки зрения, хотя мы также учтем информацию, полученную из опыта разработки проектов в нашей компании.

Продуктивность программирования определяет, насколько эффективно (т.е. быстро и точно) программист с определенным опытом и знаниями может решить поставленную перед ним задачу, используя заданный язык программирования. Так как оклад разработчика является главной составляющей стоимости разработки любого программного проекта, продуктивность программирования имеет большое значение. Также в определенной степени продуктивность программирования определяется доступными инструментальными средствами.

Отличительной особенностью Java в сравнении с другими языками программирования общего назначения является обеспечение высокой продуктивности программирования, нежели производительность работы приложения или эффективность использования им памяти.

Для этого Java наделена некоторыми дополнительными возможностями. Например, в отличие от C++ (или C), программист не должен в явном виде "освобождать" (возвращать) выделенную память операционной системе. Освобождение неиспользуемой памяти (сборка "мусора") автоматически обеспечивается средой выполнения Java в ущерб производительности и эффективности использования памяти (см. далее). Это освобождает программиста от утомительной задачи по слежению за освобождением памяти - главного источника ошибок в приложениях. Одна эта возможность языка должна значительно увеличить продуктивность программирования в сравнении с C++ (или C).

Однако проведенное исследование показывает, что на практике сборка "мусора" и другие возможности Java не оказывают большого влияния на продуктивность программирования. Одна из классических моделей оценки программного обеспечения CoCoMo, предложенная BarryBoehm, предопределяет стоимость и сроки разработки программного продукта на основе стоимостных коэффициентов, которые учитывают такие факторы, как суммарный опыт программирования разработчика, опыт программирования на заданном языке, желаемая надежность программы и т.д. Boehm пишет, что независимо от уровня используемого языка, начальные трудозатраты всегда высокие. Подобная методика подсчета использовалась в другом исследовании, проведенном C.E. Walston и C.P. Felix, IBM,Метод измерения и оценки программирования (Amethodofprogrammingmeasurementandesti-mation).

Оба приведенных здесь исследования появились задолго до создания Java, но несмотря на это, они демонстрируют общий принцип: сложность языка программирования общего назначения по сравнению с другими аспектами, такими как квалификация разработчика, не оказывает существенного влияния на полную стоимость разработки проекта.

Существует более позднее исследование, которое явно включает Java и которое подтверждает эту гипотезу. В Эмпирическом сравнении C, C++, Java, Perl, Python, Rexx и Tcl (AnempiricalcomparisonofC, C++, Java, Perl, Python, Rexx, andTcl) LutzPrechelt из университета Karlsruhe описывает проведенный им эксперимент, в котором студентам информатики поручили выполнить определенный проект и выбрать для его реализации, руководствуясь личными предпочтениями, один из языков программирования:C, C++ или Java (остальные языки были рассмотрены в другой части исследования).

Подводя итог: оба исследования и практика опровергают утверждение, что Java обеспечивает программистам лучшую продуктивность программирования, нежели C++.

Мы увидели, что преимущества продуктивности программирования на Java оказались иллюзорными. Теперь мы исследуем производительность работы приложений.

Объем предлагаемой информации о сравнении языков огромен, но в конечном итоге он приходит к заключению, что "Java-программы выполняются по крайней мере в 1.22 раза медленнее C/C++ программ". Заметьте, что сказанопо крайней мере; средняя же скорость работы Java-программ гораздо меньше. Наш собственный опыт показывает, что Java-программы выполняются приблизительно в 2-3 раза медленнее своих C/C++ аналогов. На задачах, ориентированных на интенсивное использование процессора, Java-программы проигрывают еще сильнее.

В случае программ с пользовательским графическим интерфейсом увеличение времени отклика интерфейса является более критичным, чем низкая производительность программы. Проведенные исследования показывают, что пользователи более терпимы к задачам, выполняющимся в течение двух или трех минут, чем к программам, которые не реагируют мгновенно на их воздействия, например, на нажатия кнопок. Эти исследования показывают, что если время отклика программы больше, чем 0,7 секунды, пользователи считают ее медленной. Мы вернемся к этой проблеме, когда будем сравнивать пользовательский графический интерфейс в программах Java и C++.

Объяснение того, почему Java-программы медленнее C++ проограмм, заключается в следующем. C++ программы компилируются компилятором C++ в двоичный формат, который затем исполняется непосредственно процессором; таким образом, выполнение программы осуществляется аппаратными средствами. (Это несколько упрощенно, так как большинство современных процессоров выполняют микрокод, но это не принципиально при обсуждении данного вопроса.) С другой стороны, компилятор Java компилирует исходный код в "байт-код", который непосредственно исполняется не процессором, а с помощью другого программного обеспечения, виртуальной машины Java (JavaVirtualMachine, JVM). В свою очередь, JVM исполняется процессором. Таким образом, выполнение байт-кода Java-программ осуществляется не быстрыми аппаратными средствами, а с помощью более медленной программной эмуляции.

Для повышения производительности работы Java-программ были разработаны "JustinTime" (JIT) компиляторы, но универсального решения этой проблемы не существует.

На первый взгляд, полуинтерпретируемая природа Java-программ обеспечивает выполнение принципа "скомпилированный однажды код выполняется везде". Однажды скомпилированная в байт-код Java-программа может выполняться на любой платформе, для которой доступна JVM. На практике же, это не всегда так из-за отличий в реализациях разных JVM и из-за необходимости иногда наряду с Java-программами использовать родной, не-Java код, обычно написанный на C или C++.

Но разве использование платформенно-независимого байт-кода является верным подходом в создании кросс-платформенных приложений? С хорошим кросс-платформенным инструментарием, наподобие Qt, и хорошими компиляторами для различных платформ программисты могут достичь почти той же цели компиляцией своего исходного кода один раз для каждой из платформ: "написанный однажды код компилируется везде". Можно возразить, что для этого разработчикам потребуется доступ ко всем поддерживаемым платформам, в то время, как с Java, теоретически, разработчикам необходим доступ только к одной из платформ, имеющей средства разработки для Java и JVM. На практике же ни один из ответственных производителей программного обеспечения не будет сертифицировать свои программные продукты для платформ без предварительного их тестирования, поэтому в любом случае производителям будет необходим доступ ко всем поддерживаемым платформам.

Возникает вопрос, зачем использовать программную реализацию виртуальной машины Java, если такую же функциональность можно получить с помощью аппаратной реализации? Именно так рассуждали разработчики при создании языка Java; они предполагали, что вопрос низкой производительности будет решен, когда станет доступной аппаратная реализация JVM в виде Java-процессоров. Однако даже по прошествии пяти лет Java-процессоры не получили широкого распространения. Существуют проектные экземпляры и даже работающие прототипы Java-процессоров, однако понадобится еще немало времени, чтобы стало возможным их приобрести.

Java и C++ используют различные подходы в управлении памятью. В C++ управление памятью полностью осуществляется программистом, т.е. по мере необходимости распределение и освобождение памяти должно выполняться программистом. Если программист забывает освободить ранее полученную память, возникает "утечка памяти". Если во время работы приложения произойдет лишь одна такая утечка, проблем не возникнет, так как после завершения работы приложения операционная система освободит всю ранее использованную им память. Но если утечки памяти будут происходить постоянно (например, если пользователь будет периодически выполнять определенные действия), использование памяти приложением будет расти вплоть до полного ее расхода с последующим возможным отказом системы.

Java обеспечивает автоматическое освобождение неиспользуемой памяти. Наряду с распределением памяти программистом JVM ведет учет всех используемых блоков памяти и указателей на них. Если блок памяти больше не используется, он может быть освобожден. Это обеспечивает процесс, который называется "сборкой мусора". Он периодически вызывается JVM, проверяет все используемые блоки памяти и освобождает те из них, на которые отсутствуют указатели.

...

Подобные документы

  • Применение вейвлет-преобразования для сжатия и обработки медицинских сигналов и изображений. Разработка алгоритма автоматизированного выделения PQRST-признаков в сигнале электрокардиограмм с помощью вейвлет-инструментария математического пакета Matlab.

    дипломная работа [4,6 M], добавлен 16.07.2013

  • Основные понятия стеганографии. Атаки на стегосистемы, стегосистемы водяных знаков. Применение дискретных вейвлет преобразований в кодировании цифровых зображений. Алгоритмы стеганографического встраивания информации в изображения формата JPEG2000.

    дипломная работа [3,5 M], добавлен 09.06.2013

  • Типы изображений (черно-белые, полутоновые, цветные) и их форматы. Устройства, создающие цифровые изображения, и их параметры. Применение и характеристики методов сжатия изображений. Поиск по содержимому в базах данных изображений. Структуры баз данных.

    презентация [360,4 K], добавлен 11.10.2013

  • Обработка изображений на современных вычислительных устройствах. Устройство и представление различных форматов изображений. Исследование алгоритмов обработки изображений на базе различных архитектур. Сжатие изображений на основе сверточных нейросетей.

    дипломная работа [6,1 M], добавлен 03.06.2022

  • Изучение современных методик компьютерной обработки биомедицинских изображений с целью улучшения изображений для их наилучшего визуального восприятия врачом-диагностом и эффективного сжатия изображений – для надежного хранения и быстрой передачи данных.

    курсовая работа [2,3 M], добавлен 15.04.2019

  • Описание математических методов представления и обработки графических изображений. Описание разработанного программного дополнения. Описание функций и их атрибутов. Представление и обработка графических изображений. Результаты тестирования программы.

    курсовая работа [1,7 M], добавлен 27.01.2015

  • Характеристика сигнала и его представление в виде математического ряда. Условия ортогональности двух базисных функций. Ряд Фурье, его интегральное преобразование и практическое использование в цифровой технике для обработки дискретной информации.

    реферат [69,9 K], добавлен 14.07.2009

  • Цифровые рентгенографические системы. Методы автоматического анализа изображений в среде MatLab. Анализ рентгеновского изображения. Фильтрация, сегментация, улучшение изображений. Аппаратурные возможности предварительной нормализации изображений.

    курсовая работа [890,9 K], добавлен 07.12.2013

  • Разработка и реализация многомасштабного анализа дискретных сигналов путем вейвлет-преобразований и структурной индексации, объединение методов в единую систему. Поисково-исследовательский характер и направление на упрощение многомасштабного анализа.

    дипломная работа [3,0 M], добавлен 01.07.2008

  • Обзор методов создания Web-ресурса для публикации фотопанорамных изображений. Необходимые компоненты для работы сервера. Создание хранилища данных в программной оболочке Denwer. Публикация готовых панорамных изображений на сайте кафедры ИСКМ ВолГУ.

    курсовая работа [1,9 M], добавлен 28.08.2012

  • История появления и основные понятия графического дизайна. Выявление главных преимуществ и недостатков недеструктивной обработки изображений. Сравнение деструктивной и недеструктивной обработки изображений. Сущность и особенности двухмерной графики.

    реферат [5,2 M], добавлен 05.05.2023

  • Изучение и программная реализация в среде Matlab методов обработки, анализа, фильтрации, сегментации и улучшения качества рентгеновских медицинских изображений. Цифровые рентгенографические системы. Разработка статически обоснованных алгоритмов.

    курсовая работа [4,7 M], добавлен 20.01.2016

  • Методика устранения посторонних шумов и коррекции искажения типа дисфокусировки. Обрезка сильно искаженных краев изображения. Построение яркостной гистограммы изображения и его преобразование в индексный формат с восьмицветовой палитрой в пакете Matlab.

    контрольная работа [4,7 M], добавлен 13.01.2012

  • Технология считывания данных в современных устройствах оцифровки изображений. Принцип работы черно-белых и цветных сканеров. Цифровое кодирование изображений. Программные интерфейсы и TWAIN. Способ формирования изображения. Преимущество галогенной лампы.

    реферат [2,2 M], добавлен 02.12.2012

  • Современные системы текстурного анализа изображений. Примеры текстурной сегментации одноканальных изображений. Использование признаков, полученных на основе гистограммы яркостей второго порядка, для классификации спектрозональных аэрофотоснимков.

    реферат [573,5 K], добавлен 15.01.2017

  • Обзор существующего программного обеспечения для автоматизации выделения границ на изображении. Разработка математической модели обработки изображений и выделения контуров в оттенках серого и программного обеспечения для алгоритмов обработки изображений.

    дипломная работа [1,7 M], добавлен 27.03.2013

  • Обнаружение деталей и их границ изображения. Применение ранговых алгоритмов. Использование алгоритмов адаптивного квантования мод в режиме пофрагментной обработки. Обобщенная линейная фильтрация изображений. Восстановление отсутствующих участков.

    курсовая работа [1,8 M], добавлен 17.06.2013

  • Получение вейвлетов Габора из представления путем его поворота и растяжения для известного числа масштабов и ориентаций. Описание процедуры pullback. Детектор края, реализация алгоритма. Генерация представления изображения с помощью вейвлетов Габора.

    курсовая работа [1021,4 K], добавлен 29.10.2017

  • Общий алгоритм сравнения двух изображений. Метод максимальных площадей. Метод гистограмм. Подготовка изображения к распознаванию. Моделирование многомерной функции. Распределение векторов. Деформируемые модели. Реализация программного обеспечения.

    дипломная работа [384,2 K], добавлен 29.09.2008

  • Разработка приложения, целью которого ставится преобразование черно-белых полутоновых изображений в цветные. Обзор методики обработки изображения, способов преобразования изображения с помощью нейронной сети. Описания кластеризации цветового пространства.

    дипломная работа [6,3 M], добавлен 17.06.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.