Актуальность. В современном мире программное обеспечение для обработки изображений играют важную роль, поскольку оно позволяют пользователям улучшать качество своих фотографий, добавлять креативные эффекты и выражать уникальный стиль. Визуальный контент стал ключевым элементом в маркетинге, социальных сетях и цифровых медиа, что делает качественную обработку изображений необходимой для привлечения аудитории и передачи правильного послания. Тем более современные платформы либо закрыли доступ для получения программного обеспечения, либо настолько дорогие, что это является большой проблемой для начинающих специалистов.
В результате личного опыта обработки изображений неоднократно возникали проблемы, связанные с необходимостью использования какого- либо приложения. И именно эти возникшие трудности повлекли за собой мое желание разработать программное обеспечение или же приложение для обработки изображений.
Актуальность создания доступного и эффективного программного обеспечения для обработки изображений обусловлена увеличением количества людей, занимающихся своими социальными сетями, маркетологов, занимающихся созданием таких изображений, которые привлекут внимание людей, фотографов, создающих уникальные изображения. Всем им необходимы мощные редакторы, которые помогут быстро и эффективно улучшать качество своих снимков.
Существующие проблемы, такие как сложность интерфейса - многие редакторы изображений создают сложный для понимания интерфейс, что особенно выделяется для начинающих пользователей, стоимость - многие продвинутые редакторы изображений требуют платной подписки или единовременной оплаты, также являются препятствием для пользователей. В связи с чем разработка приложения по обработке изображений является актуальной прикладной задачей.
Целью данной работы является разработка программного обеспечения по обработке изображений методами машинного зрения, что обеспечивает высокую производительность, удобство использования и доступность для всех категорий пользователей.
Для достижения поставленной цели были сформулированы следующие задачи:
1. Изучить существующие решения для обработки изображений.
2. Определить стек технологий для разрабатываемого приложения.
3. Разработать программное обеспечение с реализацией алгоритмов компьютерного зрения.
Структура работы. Текст данной выпускной квалификационной работы состоит из введения, двух глав, заключения и списка литературы.
В первой главе представлено описание существующих решений в области программ для обработки изображений. Проведен анализ требований к разрабатываемому проекту, выявлены ключевые аспекты, которые необходимо учесть при разработке. Также здесь описаны современные технологии, которые могут быть применены для реализации приложения и обоснован выбор стека технологий.
Вторая глава посвящена проектированию архитектуры программного обеспечения. В ней описываются система сборки, дизайн и разработка окон приложения, а также реализация алгоритмов компьютерного зрения.
В заключении подведены краткие итоги исследования.
ВВЕДЕНИЕ ................................................................................................... 3
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ...................................................... 5
1.1 Обзор существующих решений .......................................................... 5
1.2 Основные требования .......................................................................... 6
1.3 Технологии, используемые для разработки приложения ................. 7
1.4 Подход к разработке ........................................................................... 9
2 РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ............................................................ 10
2.1 Архитектура системы ......................................................................... 10
2.2 Алгоритмы компьютерного зрения .................................................. 30
ЗАКЛЮЧЕНИЕ............................................................................................ 36
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ..................................... 37
ПРИЛОЖЕНИЕ 39
1. C++ and OpenCV: A Guide to Advanced Computer Vision [Электронный ресурс]. (Дата обращения: 05.02.2024)
2. C++ Documentation [Электронный ресурс]. (Дата обращения: 01.03.2024)
URL: https://learn.microsoft.com/ru-ru/cpp/cpp/?view=msvc-170
3. Cmake Tutorial [Электронный ресурс]. (Дата обращения: 23.03.2024)
URL: https://cmake.org/cmake/help/book/mastering- cmake/cmake/Help/guide/tutorial/index.html
4. Foreground Extraction using GrabCut Algorithm. [Электроный ресурс]. (Дата обращения: 05.03.2024)
5. Morphological Transformations [Электронный ресурс]. (Дата обращения: 05.03.2024) URL:
https://docs.opencv.org/4.x/d9/d61/tutorial py morphological ops.html
6. Opencv Documentation [Электронный ресурс]. (Дата обращения: 05.03.2024) URL: https://opencv-
tutorial.readthedocs.io// downloads/en/latest/pdf/
7. Qt Documentation [Электронный ресурс]. (Дата обращения: 25.03.2024) URL: https://doc.qt.io/
8. Understanding Computer Vision with Opencv [Электронный ресурс]. (Дата обращения: 13.03.2024) URL: https://www.codersarts.com/post/opencv-library\
URL: https://huningxin.github.io/opencv docs/d8/d83/tutorial py grabcut.html
9. URL: https://www.w3computing.com/articles/cpp-opencv-guide-advanced- computer-vision/
10. Обзор алгоритмов сегментации [Электроный ресурс]. (Дата обращения:
15.03.2024) URL: https://habr.com/ru/companies/intel/articles/266347/
11 . Руководство по стандартной библиотеке шаблонов STL Documentation [Электронный ресурс]. (Дата обращения: 03.02.2024) URL:
https://www.rsdn.org/article/cpp/stl.xml
12 .Руководство по языку программирования C++ [Электронный ресурс.] (Дата обращения 04.03.2024) URL: https://metanit.com/cpp/tutorial/