Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: LXVI Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 14 июня 2018 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Подакина Т.С. АЛГОРИТМ ЦВЕТОКОРРЕКЦИИ ИЗОБРАЖЕНИЯ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. LXVI междунар. студ. науч.-практ. конф. № 6(65). URL: https://sibac.info/archive/technic/6(65).pdf (дата обращения: 26.11.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 7 голосов
Дипломы участников
Диплом Интернет-голосования

АЛГОРИТМ ЦВЕТОКОРРЕКЦИИ ИЗОБРАЖЕНИЯ

Подакина Татьяна Сергеевна

студент, кафедра Вычислительной Математики и Прикладных Информационных Технологий ФГБОУ ВО «Воронежский государственный университет»,

РФ, г. Воронеж

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

Ключевые слова: цветовая модель RGB, цветовая модель HSV, алгоритм цветокоррекции.

 

На сегодняшний день существует много различных цветовых моделей, имеющих свои преимущества и недостатки. Популярными среди них являются RGB, CMYK, HSV, LAB. Модель RGB является одной из самых распространённых. В основном она используется для создания изображения на экранах монитора. Минимальная единица изменения при этом называется пикселем. Модель RGB еще называют аддитивной, поскольку по мере увеличения яркости составляющих цветов увеличивается яркость результирующего цвета [1, с. 11]. Эту модель наиболее удобно изображать в виде куба (рис. 1). Кодирование точки производится тремя байтами, каждый из которых может принимать значения от 0 до 255 в десятичной форме. Значения первого байта показывает яркость красного, второй и третий зеленого и синего соответственно. Таким образом, у белого цвета все три составляющие равны 255, а у черного 0. Важно учесть, что при одинаковой интенсивности глаз человека воспринимает зеленый цвет лучей как наиболее яркий, как несколько менее яркий – красный и как совсем темный – синий цвет. Таким образом цвет точки и ее яркость связаны между собой, что является отрицательным свойством данной модели.

Рассмотрим модель HSV (Hue, Saturation, Value), которая является нелинейным преобразование модели RGB. Компонента H (Hue) отвечает за цветовой тон и принимает значения от 0 до 360. Компонента S (Saturation) обозначает насыщенность (чистоту) цвета. Этот параметр варьируется от 0 до 1. Чем ближе к 0, тем ближе цвет к серому (нейтральному). Компонента V(Value) показывает значение цвета и измеряется от 0 до 1. Данную модель обычно изображают в виде конуса (рис. 2)

 

Рисунок 1. Графическое изображение модели RGB

 

Рисунок 2. Графическое изображение модели HSV

 

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

Вначале находятся максимальное и минимальное значение из R, G и B компонент каждого пикселя. После их нахождения применяются следующие расчетные формулы и переход к следующему пикселю:

,

,

Где MAX = MAX {R, G, B}, MIN = MIN {R, G, B}.

После преобразования, указанного выше, можно далее попиксельно работать с изображением, а затем перевести его обратно в RGB. Расчетные формулы для перехода от модели HSV к модели RGB указаны ниже:

После нахождения всех составляющих переход от модели RGB к модели HSV происходит с помощью таблицы, указанной ниже (Табл.1).

Таблица 1

Переход от модели RGB к HSV

R

G

B

0

1

2

3

4

5

 

Полученные значения красного, зелёного и синего каналов RGB исчисляются в процентах. Чтобы привести их к обычному представлению необходимо умножить каждое из них на  , где деление на 100 избавит от процентов, а умножение на 255 приведет к типу COLORREF, который является стандартным типом для представления цветов в Win32. Используется для определения цвета в виде RGB. Размер – 4 байта. При определении какого-либо RGB цвета, значение переменной типа COLORREF можно представить в шестнадцатеричном виде так:

0x00bbggrr,

rr, gg, bb – значение интенсивности соответственно красной, зелёной и синей составляющих цвета. Максимальное их значение – 0xFF [2, с. 35].

Далее рассмотрим алгоритм высветления цвета.

1.     Загрузка изображения.

2.     Перевод изображения в HSV.

3.     Определение цвета для высветления.

4.     Выделение области для обработки.

5.     Просмотр всех пикселей изображения и определение является ли пиксель «подходящим».

6.     Уменьшение значение S, не изменяя значения H и V для подходящих пикселей.

7.     Перевод пикселя обратно в RGB.

Уделим некоторым пунктам алгоритмам особое внимание.

В пункте 3 для определения цвета удобно воспользоваться инструментом «пипетка».

В пункте 4 в выделенную область должны входить все пиксели, требующие обработки и минимальное количество не требующих обработки пикселей.

Для пункта 6, существует несколько путей решения. Компонента S отвечает за насыщенность и чем она ближе к 0, тем цвет белее. Но полностью обнулять значение этой компоненты нельзя, так как это приведет к неестественности в цвете зубов. Первым способом является деление значения этой компоненты на число, одинаковое для всех пикселей. Экспериментальным путем получено, что самым подходящим является число 2.

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

Для пункта 5 определение подходящего пикселя происходит с помощью алгоритма, описанного ниже:

1.     Выбрать цвет.

2.     Обозначить через компоненту HUE выбранного цвета.

3.     Выделить область редактирования.

4.     Посчитать среднее значение  всех пикселей из области редактирования.

5.     Обозначить через eps разницу между  и выбранным .

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

7.     Проверять, что [ - eps,  + eps].

Задачей, при решении которой применяется алгоритм высветления, может быть «отбеливание зубов» на фотографии – один из самых популярных запросов обычных пользователей. Например, это может быть реализовано в Photoshop.

Данный алгоритм был реализован на языке JAVA в интегрированной среде разработки IntelliJ IDEA.

Примеры работы алгоритма высветления цвета представлены на рисунках ниже (рис.3 – рис.6).

 

Рисунок 3. Исходное изображение

 

Рисунок 4. Неверный диапазон HUE

 

Рисунок 5. Обнуление компоненты V

 

Рисунок 6. Оптимальная работа п алгоритма высветления

 

Список литературы:

  1. Ежова К. В. Моделирование и обработка изображений. Учебное пособие. / Ежова К. В. – СПб: НИУ ИТМО, 2011. – 90 с.
  2. Мазурина А. М. Растровая графика (Часть 1. Теоретические основы). Учебно-методическое пособие для самостоятельной работы студентов / Мазурина А. М. – Саратов: Саратовский государственный социально-экономический университет, Информационно-образовательный центр «Виртуальный филиал Русского музея». Саратов, 2007 – 44 с.
Проголосовать за статью
Конференция завершена
Эта статья набрала 7 голосов
Дипломы участников
Диплом Интернет-голосования

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.