Программирование инструмента кривых GIMP - PullRequest
1 голос
/ 30 января 2011

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

Это не простая регулировка яркости / контрастности.Поэтому мне нужна помощь в теории и деталях реализации инструмента Curves.Он называется «Инструмент кривых», но с точки зрения обработки изображений, у него есть альтернативное имя?(Так что я могу Google)

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

Ответы [ 2 ]

4 голосов
/ 30 января 2011

Инструмент кривых предназначен для отображения значений (интенсивностей) каналов R, G и B (и альфа) в каждом пикселе изображения. Ось X - это интенсивность входа канала в [0,255], а ось Y - интенсивность выхода в [0,255].

Это общий инструмент для выполнения, например, яркости (прямая линия, идущая из любой точки по оси Y слева в верхний правый угол), контрастности (график "формы s"), гамма (степень функция, что-то вроде x ^ gamma) или цветовой баланс (прямая линия, идущая от нижнего левого угла к любой точке оси y = 255 или оси x = 255).

Затем определенная вами функция применяется к каналам R, G и B (и альфа) каждого пикселя. Гистограмма - это просто сводная информация о распределении цветов в вашем изображении до применения определенной вами кривой.

3 голосов
/ 30 января 2011

Думайте о гистограмме как о наборе «ячеек» вдоль горизонтальной оси графика. «Кривая» определяет множитель для каждой из этих корзин. Прямая линия, начинающаяся от нижнего левого угла и продолжающаяся до правого верхнего угла, определяет множитель 1,0. Для каждого бина вы рассчитываете процентное отклонение между этой прямой и фактическим положением кривой и умножаете значение в этом бине на это значение.

...