Изменение яркости изображения
Яркость - это световая характеристика тел, отношение силы света, излучаемого поверхностью, к площади ее проекции на плоскости, перпендикулярной оси наблюдения. Если сказать проще, это количество белого цвета на изображении. Чем выше яркость, тем светлее оно становится.Вот формула, по которой мы будем изменять яркость:
Код:
|
Значения яркости находятся в диапазоне от 0 до 255. Для того чтобы яркость можно было уменьшать и увеличивать, значения яркости берут в диапазоне от -255 до 255, затем по формуле вычисляют цвет и приводят к диапазону от 0 до 255.
Чтобы цвет был в диапазоне от 0 до 255, мы будем использовать функцию ToByte().
Создайте класс Brightness и добавьте в него функцию ToByte().
Код:
|
Теперь нужно добавить функцию ProcessImage:
Код:
|
В этой функции мы к каждому пикселю прибавляли одинаковое значение и таким образом увеличивали яркость.
Использование в приложениях: яркость
Код:
|
Рисунок 1. Изображение до изменения яркости.
Рисунок 2. Изображение после изменения яркости (+85).
Изменение контрастности изображения
Контрастность - разница между оттенками цвета предмета наблюдения и окружающего его фона. Опять же, если сформулировать проще, это разница между различными расположенными рядом цветами. Чем выше контрастность, тем более резко мы наблюдаем переход от одного цвета к другому.Реализация контрастности немного сложнее. Чтобы контрастность можно было увеличивать и уменьшать, её значения берут от -100 до 100, а потом уже значение приводят к диапазону от 0 до 255.
Формула ее вычисления выглядит следующим образом:
Код:
|
RGB_Channels здесь – это каналы RGB (красный, зелёный, синий).
Создайте класс Contrast и добавьте в него функцию ProcessImage :
Код:
Готово!
|
Использование в приложениях: контрастность
Код:
|
Рисунок 3. Изображение до изменения контрастности.
Рисунок 4. Изображение после изменения контрастности (+35).