Курсовой проект Разработка редактора изображений
Скачать 364.3 Kb.
|
1 2 КУРСОВОЙ ПРОЕКТ «Разработка редактора изображений» по дисциплине «Информационные технологии. ч.II» 1 Наименование изделия, цель и сроки выполнения курсового проекта Наименование изделия: «Редактор изображений Номер группы_ФамилияИО» (далее по тексту – ПО Номер группы_ФамилияИО). Шифр изделия: «Номер группы_ФамилияИО». Целью выполнения курсового проекта является разработка программного обеспечения для редактирования изображений, отладка программного обеспечения. Срок выполнения: окончание – 02.06.2023 г. Перечень ссылочных нормативных документов приведен в Приложении А. 2 Технические требования к программному изделию 2.1 Состав программного изделия 2.1.1 В состав ПО «Номер группы_ФамилияИО» должны входить (рис. 1): - программное обеспечение, реализующее 4 фильтра по обработке изображений согласно индивидуальному варианту; 2.1.2 ПО должно работать с полутоновыми (8бит) изображениями и цветными RGB изображениями. 2.1.3 Результаты применения фильтров должны сохраняться в отдельные файлы изображений. 2.2 Группа фильтров №1 Рисование фигур 2.2.1 Общее для всех вариантов задание Нарисуйте фигуру согласно индивидуальному варианту. Реализуйте возможность выбора прямоугольной области на изображении и перемещения ее на заданную мышью позицию.
Рис. 1 Пример фигуры 2.2.2 Фильтр 1.1 Для цветного изображения: реализуйте с помощью ползунков изменение средней яркости зеленого, красного и синего согласно рис.1(в) и рис.2. Рис. 2 Фильтр должен содержать ползунок, позволяющий изменять числовое значение от 0 до 255 для каждого канала. Для полутонового изображения: изменение средней яркости. 2.2.3 Фильтр 1.2 Реализуйте ластик заданного размера. Реализовать визуальный эффект «стирания» изображения в области нажатия «ластика». Размер ластика задается пользователем (в количестве пикселов). 2.2.4 Фильтр 1.3 По щелчку мыши реализовать вырез участка изображения, заданной площадью (количество пикселов по вертикали и горизонтали задается пользователем), с центром, находящимся в текущих координатах курсора. Осуществить вывод изображения в отдельное окно. 2.3 Группа фильтров №2 Масштабирование изображения Реализуйте фильтр согласно индивидуальному варианту. Масштаб изображения должен изменяться с помощью ползунка. 2.3.1 МАСШТАБИРОВАНИЕ ИЗОБРАЖЕНИЯ МЕТОДОМ БЛИЖАЙШЕГО СОСЕДА Увеличение масштаба изображения (рис. 3) Рис. 3 Фильтр 2.1 Увеличение масштаба по вертикали Фильтр 2.2 Увеличение масштаба по горизонтали Фильтр 2.3 Увеличение масштаба всего изображения Уменьшение масштаба изображения (рис.4) Рис. 4 Фильтр 2.4 Уменьшение масштаба по вертикали Фильтр 2.5 Уменьшение масштаба по горизонтали Фильтр 2.6 Уменьшение масштаба всего изображения 2.3.2 МАСШТАБИРОВАНИЕ ИЗОБРАЖЕНИЯ МЕТОДОМ ЛИНЕЙНОЙ ИНТЕРПОЛЯЦИИ (рис. 5) Рис. 5 Y(i,j)=(x(i,j)+x(i,j+1)+ x(i+1,j)+x(i+1,j+1))/4 Y(i,j+1)=(x(i,j+2)+x(i+1,j+2)+ x(i+1,j+3)+x(i,j+3))/4 Фильтр 2.7 Увеличение масштаба по вертикали Фильтр 2.8 Увеличение масштаба по горизонтали Фильтр 2.9 Увеличение масштаба всего изображения Фильтр 2.10 Уменьшение масштаба по вертикали Фильтр 2.11 Уменьшение масштаба по горизонтали Фильтр 2.12 Уменьшение масштаба всего изображения 2.4Группа фильтров №3 Линейное контрастирование изображения 2.4.1 Фильтр 3.1 БИНАРИЗАЦИЯ Значения пиксела преобразуется в соответствии с условием (рис. 6) Значение серого оттенка устанавливается равным 0 (0 - черный цвет), если его исходное значение меньше заданного порога, или устанавливается равным числу 255 (белый цвет), если исходное значение больше или равно пороговому значению. Такая обработка превращает изображение, созданное в оттенках серого, в черно-белое. Это называется бинаризацией (преобразование в двоичную форму). Рис. 6 Значение порога qпор задает пользователь. Если загружено цветное изображение, то для применения фильтра предварительно его нужно преобразовать в полутоновое. Преобразование в полутоновое изображение осуществляется по формуле Y=0.3R+0.59G+0.11B 2.4.2 Фильтр 3.2 ИНВЕРСИЯ С помощью операции «инверсия» (рис. 7) можно получить негатив изображения, т.е. все значения яркости изображения изменяются на противоположные. Осуществление данного преобразования производится следующим образом q*=255- q; где q –значение яркости, изменяется в диапазоне [0…255]. Рис. 7 В случае обработки цветного изображения фильтр применяется к каждому каналу отдельно. 2.4.3 Фильтр 3.3 ПОСТЕРИЗАЦИЯ С помощью операции «постеризация» (рис. 8) изменяется количество уровней яркости изображения. Пользователь задает число уровней яркости. Рис. 8 В случае обработки цветного изображения фильтр применяется к каждому каналу отдельно. 2.4.4 Фильтр 3.4 ЯРКОСТНОЙ СРЕЗ Преобразование осуществляется согласно рис.9. Пользователь задает уровни q1, q2, q*max Рис. 9 В случае обработки цветного изображения фильтр применяется к каждому каналу отдельно. 2.4.5 Фильтр 3.5 ГАММА-КОРРЕКЦИЯ Для реализации фильтра (рис. 10) используется следующая упрощенная формула qout = qinγ А) γ < 1 Б) γ > 1 В) γ = 1 γ – задается пользователем Рис. 10 В случае обработки цветного изображения фильтр применяется к каждому каналу отдельно. 2.4.6 Фильтр 3.6 ЛИНЕЙНОЕ МАСШТАБИРОВАНИЕ Преобразование осуществляется согласно рис. 11. Рис. 11 Пользователь задает уровень q*max. В случае обработки цветного изображения фильтр применяется к каждому каналу отдельно. 2.4.7 Фильтр 3.7 ЛИНЕЙНОЕ МАСШТАБИРОВАНИЕ С ОГРАНИЧЕНИЕМ Преобразование осуществляется согласно рис. 12. Рис. 12 Пользователь задает уровни q1, q2 , q3 и q*max. В случае обработки цветного изображения фильтр применяется к каждому каналу отдельно. 2.4.8 Фильтр 3.8 ЛИНЕЙНОЕ ПИЛООБРАЗНОЕ МАСШТАБИРОВАНИЕ Преобразование осуществляется согласно рис. 13. Рис. 13 Пользователь задает количество «зубьев пилы» и уровень q*max. В случае обработки цветного изображения фильтр применяется к каждому каналу отдельно. 2.4.9 Фильтр 3.9 СОЛЯРИЗАЦИЯ Преобразование осуществляется согласно рис. 14. Рис. 14 Пользователь задает уровни q1и q*max. В случае обработки цветного изображения фильтр применяется к каждому каналу отдельно. 2.4.10 Фильтр 3.10 Преобразование осуществляется согласно рис. 15. Рис. 15 Пользователь задает уровни q1 и q2. В случае обработки цветного изображения фильтр применяется к каждому каналу отдельно. 2.4.11 Фильтр 3.11 Реализуйте коррекцию (рис. 16) согласно следующему уравнению (обратите внимание на диапазон входных и выходных значений) Рис. 16 В случае обработки цветного изображения фильтр применяется к каждому каналу отдельно. 2.4.12 Фильтр 3.12 Тоновая коррекция для повышения контраста медицинских изображений может быть реализована применением тональных кривых независимо к каждому каналу цветного изображения. Тональные кривые представляют собой сигмоиды и задаются уравнением: где – коэффициент усиления, определяющий кривизну сигмоиды, – коэффициент отсечки, определяющий положение точки перегиба, – значение яркости в канале в диапазоне [0…1]. Рекомендуемые параметры сигмоиды: для зеленого и синего каналов изображения, – для красного. Графики, иллюстрирующие форму кривых с указанными параметрами, представлены на рис. 17. f(x) R-канал G и B-каналы x Рис. 17 2.5 Группа фильтров №4 2.5.1 ГИСТОГРАММА Гистограмма – это графическое отображение распределения полутонов. По горизонтали идет шкала яркости, а по вертикали – количество пикселей с данной яркостью (рис. 18). Гистограмма читается слева на право, от черного к белому. Анализ гистограммы и модификация гистограммы изображения – важный инструмент в компьютерном зрении и видеоаналитике. Рис. 18 2.5.1 Фильтр 4.1 Линейная растяжка гистограммы. Уровням исходного изображения, лежащим в интервале [fмин, fмакс], присваивают новые значения с тем, чтобы охватить весь возможный интервал изменения яркости [0, 255]. При этом существенно увеличивается контраст. Преобразование уровней яркости осуществляется по формуле: где fi- старое значение яркости i-го пиксела, gi - новое значение, a, b – коэффициенты, выбираемые так, что gмин = 0, gмакс = 255. 2.5.2 Фильтр 4.2 Нормализация гистограммы. При нормализации на весь максимальный интервал уровней яркости [0, 255] растягивается не вся гистограмма, лежащая в пределах от fмин до fмакс, а её наиболее интенсивный участок (fмин', fмакс'), из рассмотрения исключаются малоинформативные участки в самых темных и ярких участках градациях (то есть «хвосты» слева и справа на гистограмме). Например, исключить можно участок, число пикселов в котором не превышает 2-5% общего числа пикселов изображения. Или задать априори некоторый уровень, исходя из визуального анализа изображения. 2.6 Группа фильтров №5 Пороговая сегментация цветных изображений Выделение по цвету является важной задачей компьютерного зрения и часто применяется в задачах сегментации изображений. Сегментация в компьютерном зрении – это процесс разделения цифрового изображения на несколько сегментов (множеств пикселов, формирующих области). Существуют различные методы сегментации, включающие, например, сегментацию на основе границ или с использованием сверточных нейронных сетей. В курсовой работе предлагается реализовать простейший вариант сегментации – пороговую обработку. При пороговой обработке устанавливается пороговое значение для разделения пикселов на два класса. В простейшем случае для изображения в градациях серого, пикселы, значения которых превышают пороговое значение, устанавливаются равными максимальному значению (1 или 255), а пикселы, значения которых меньше порогового значения, устанавливаются равными 0: где f(x, y) и g(x, y) – яркость входного и выходного элемента изображения с координатами (x, y). В результате получается изображение, которое называют маской или бинарной маской изображения, а саму процедуру – бинаризацией. Возможна пороговая обработка с двойным ограничением: Для цветного изображения также возможна пороговая обработка – достаточно применить (1) независимо к каждому каналу изображения и получить итоговую маску в результате конъюнкции по трем каналам. Причем каналы могут быть в любом цветовом пространстве RGB, Lab, HSV и т.д. Пороговая сегментация изображения очень эффективна, если цветовая разница между двумя целевыми классами велика, и легко выбрать диапазон значений в качестве порога. Полученная бинарная маска позволяет производить дальнейшую обработку оригинального изображения, например, закрашивание выделенной области изображения в нужный цвет. На рис 19 приведен пример сегментации на основе пороговой обработки. Для выделения зеленой кепки (рис 19, б) изображение было преобразовано в цветовое пространство HSV, после чего установлены следующие пороги: H-канал (канал цветового тона): 36-52; S-канал (канал насыщенности): 117-237; V-канал (канал яркости): 0-255. Если брать больший пороговый размах, например, 34-54 для H-канала, то начинают выделяться области желтой кепки (рис. 19, в). Чтобы продемонстрировать возможность применения полученной маски, зеленая кепка была «перекрашена» в светло-коричневую путем уменьшения значения цветового тона (H) на 30 для всех пикселов исходного изображения, которые принадлежат маске. Наблюдается зеленая кайма вокруг «перекрашенной» кепки, что говорит о неточности сегментации, которая не может быть устранена установкой более правильных порогов. а б в г Рис.19 Сегментация на основе пороговой обработки: (а) – исходное изображение, (б) – маска с корректной настройкой порогов, (в) – маска с большим пороговым размахом, (г) – результат изменения цвета с помощью маски. В рамках выполнения курсовой работы предлагается самостоятельно реализовать пороговую сегментацию и закрашивание найденной области в соответствии с вариантом, указанным в таблице 1. Таблица 1. Варианты фильтров пороговой сегментации
ПРИЛОЖЕНИЕ 1 ВАРИАНТЫ ЗАДАНИЙ
ПРИЛОЖЕНИЕ 2 СОДЕРЖАНИЕ ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ МИНОБРНАУКИ РОССИИ Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина) Кафедра Телевидения и Видеотехники курсовой проект по дисциплине «Информационные технологии» 1 2 |