Простой линейный способ выполнения «автоконтрастности» - это линейное растяжение и смещение интенсивности изображения.
Идея состоит в том, чтобы найти параметры коррекции растяжения (контрастности) и смещения (интенсивности) так, чтобы в скорректированном изображении 5-й процентиль был сопоставлен с 0, а 95-й процентиль был сопоставлен с 255.
Мой пример для изображения в градациях серого. Для цветных изображений вы можете конвертировать в любое цветовое пространство, которое имеет один канал интенсивности и 2 цветовых канала (например, Lab, HSV, YUV и т. Д.) И выполнять это только на канале интенсивности.
- Создание гистограммы изображения
- Найти 5-й и 95-й процентиль серого (используйте накопленную сумму по значениям гистограммы).
- Решите для
a
и b
в этих 2 простых линейных уравнениях:
a*p5+b=0
и a*p95+b=255
, где p5
и p95
- 5-й и 95-й процентили серого цвета соответственно.
a
- это контраст , а b
- интенсивность поправок.
- Теперь отобразите все интенсивности серых пикселей в соответствии с уравнением:
g'=a*g+b
для всех g
= 0..255.
Конечно, вы можете использовать разные значения для процентиля и фактических отображений. Посмотрите, что работает для вас.