ВВЕДЕНИЕ
1. Обзор существующих алгоритмов по сжатию изображений
1.1. Алгоритмы сжатия без потерь
1.2. Алгоритмы сжатия с потерями
1.3. Требования к программе
1.4. Используемые технологии
2. Теоретическое обоснование алгоритмов сжатия и поворота изображений.
2.1. JPEG
2.2. Deflate
2.3. Поворот относительно центра изображения
3. Используемые технологии
3.1. Язык программирования Python
3.2. Используемые библиотеки
4. Практическая реализация
4.1. Описание программы
4.2. Реализация
4.3. Примеры
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ
СПИСОК СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ
ПРИЛОЖЕНИЕ
Каждый человек хочет запечатлеть в своей памяти какой-то яркий момент. Допустим это день рождение сына или свое собственное, покупка машины, поездка в дальние страны. Такие события не могу оставаться в памяти с такой же яркостью и точностью как фотографии.
Если рассуждать, что любая фотография сама по себе является отдельной картинкой, с изображенными на них людьми или без людей, наличие людей на самом деле не играет никакой роли (они создают образ изображению); с красивым пейзажем, где показывается первый лучик солнца, или, бьющиеся о скалы волны, которые оставляют на берегу морскую пену или с фотографией какого-то редкого животного, сделанная из глубинки леса в далекой Тайге, а может быть в Сибири.
Сделать интересную и изящную фотографию и получить из нее красивое изображение — это важная работа. Нужно подойти тщательно к выбору момента, который хочется оставить в памяти, чтобы это не было какое-то скудно-размазанное отображение реальности, а наполненный яркими красками вид. Самым главным критерием является качество, то есть формат сохранения картинки. Однако, для того чтобы сохранить качество, ведь это безусловно главная цель у любого человека, нужно иметь огромное количество памяти, где будут хранится эти изображения. Поэтому важно сжать изображение и не потерять его изначальный вид.
Существует множество алгоритмов для сжатия изображений, как с потерей данных, так и без потерь. Если говорить о сжатие картинки из одного формата в другой формат, в общем виде, это называется трансформацией изображения. Помимо этого, изображение также можно поворачивать, и оно будет изменяться. Меняется его качество, резкость, сам размер тоже может уменьшиться.
В течение выполнение квалификационной работы, будут возникать множество вопросов такие как: какие алгоритмы по сжатию существуют, чем они отличаются, их преимущества и т.д. Ответы на них будут разобраны в процессе выполнения данной работы для достижения поставленной задачи.
В каждой работе есть определенная цель и конкретные задачи, которые необходимы для выполнения. Они дают полное правильное спланированное и сконструированное представление о процессе.
Основная цель данной работы - создание программы, в который реализованы алгоритмы по трансформации изображений.
Составление задач помогает целостно увидеть общую картину работы. Они направляют в процессе реализации программы, разбивая большие темы на более мелкие с определенным назначением.
Поставленные задачи для данной работы являются:
- обзор существующих алгоритмов;
- сбор и изучение материалов по алгоритмам с потерей данных и без потерь;
- разбор полученных данных по сжатию изображения:
- способы реализации;
- различия;
- преимущества;
- подробный разбор алгоритма JPEG;
- подробный разбор алгоритма Deflate;
- сбор и изучение материалов по повороту вокруг центра изображения;
- подробный разбор поворота вокруг центра изображения;
- моделирование программы;
- проектирование программы;
- реализация программы;
- тестирование программы;
- сбор и изучение материала по языку программирования Python;
- разбор полученных данных по языку программированию Python;
- рассмотрение необходимых данных для реализации программы;
- анализ полученных данных.
Были разработаны два алгоритма данных с потерей данных (JPEG) и без потери данных (Deflate на основе PNG), а также разработан поворот изображения.
Проанализировав полученные данные экспериментов, можно заметить, что алгоритм JPEG помогает уменьшить размер изображения в несколько раз (от 10 и более). Однако, если коэффициент сжатия использовать больше, чем единица, то изображение начинает терять качество. Могут появляться резкие переходы от границ фигур и картинки начинает приобретать некую размытость в виде деления на пиксели (рисунок 26,27).
В период выполнения выпускной квалификационной работы были выполнены следующие задачи:
- реализация алгоритма с потерей данных (JPEG);
- реализация алгоритма без потери данных (Deflate на основе PNG);
- реализация алгоритма поворота относительно центра изображения;
- анализ полученных;
- сравнение полученных данных в виде графика.