Масштабирование изображений с учётом контента

Содержание

Слайд 2

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

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

изображений с учётом контента.

Постановка задачи

2

Слайд 3

Цель работы - спроектировать и реализовать независимую подсистему масштабирования изображений. Задачи:

Цель работы - спроектировать и реализовать независимую подсистему масштабирования изображений.
Задачи:
Провести

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

Цель и задачи работы

3

Слайд 4

Функциональные требования 4 Наличие интерфейса подпрограммы; Реализация класса изменения изображения; Обеспечение

Функциональные требования

4

Наличие интерфейса подпрограммы;
Реализация класса изменения изображения;
Обеспечение загрузки/сохранения изображения;
Отображение загруженного изображения;
Выбор

алгоритма ресайзинга;
Тестирование работающей подсистемы.
Слайд 5

Использование алгоритма Seam Carving 5 Алгоритм состоит из составных частей: Нахождение

Использование алгоритма Seam Carving

5

Алгоритм состоит из составных частей:
Нахождение энергии каждой точки;
Нахождение такой

вертикальной цепочки пикселей, чтобы суммарная энергия пикселей, которые входят в эту цепочку была минимальной;
Удаление минимальной цепочки.
Слайд 6

Вычисление энергии пикселя Двойная функция градиента энергии 6 Таким образом, энергия

Вычисление энергии пикселя Двойная функция градиента энергии

6

 

 

Таким образом, энергия пикселя (1, 2)

равна 41620 + 10404 = 52024.
Слайд 7

Нахождение цепочки с минимальной суммарной энергией 7

Нахождение цепочки с минимальной суммарной энергией

7

Слайд 8

Создание классов 8 Теперь создаем необходимые классы отвечающие за графический интерфейс

Создание классов

8

Теперь создаем необходимые классы отвечающие за графический интерфейс и алгоритмическую

часть подсистемы.
Создаем для наглядности UML-диаграмму классов
Слайд 9

Диаграмма классов

Диаграмма классов

Слайд 10

Слайд 11

Диаграмма взаимодействия пользователя с системой 9

Диаграмма взаимодействия пользователя с системой

9

Слайд 12

Работоспособность подсистемы 10

Работоспособность подсистемы

10

Слайд 13

Тестирование 11 Для тестирования класса было создано 14 unit-тестов: 1. testFindSeamsOn3x7

Тестирование

11

Для тестирования класса было создано 14 unit-тестов:
1. testFindSeamsOn3x7
2. testFindSeamsOn4x6
3. testFindSeamsOn5x6
4. testFindSeamsOn6x5
5. testFindSeamsOn7x3
6. testFindSeamsOn10x12
7. testFindSeamsOn12x10
8. testFindSeamsOnMountains
9. testFindSeamsOnBridge
10. testFindSeamsOnLake
11. testFindSeamsOnSea
12. testFindSeamsOnBlackWhite
13. testFindSeamsOnRed
14. testFindSeamsOnGreen

Слайд 14

В ходе выполнения работы был рассмотрен алгоритм под названием «Seam Carving».

В ходе выполнения работы был рассмотрен алгоритм под названием «Seam Carving».

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

12

Заключение