Использует ли инструмент кривых в Photoshop (или любом программном обеспечении) сглаживание? - Фотопедия
0 голосов
/ 05 ноября 2012

Я говорю не о рисовании плавных кривых, а о инструменте кривых, используемом для настройки уровней цвета. Иллюстрация будет стоить тысячи слов, здесь. Это корректировка в Gimp:

Настройка:

curves adjustment

Гистограмма До:

before

Гистограмма после:

after

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

Любое программное обеспечение обрабатывает это более изощренным способом, используя алгоритм сглаживания, чтобы использовать полный диапазон выходных значений?

Ответы [ 4 ]

3 голосов
/ 01 апреля 2014

Хотя при таком 8-битном преобразовании потери информации о цвете явно невозможно избежать, вы можете получить изображение с лучшим поведением, если допустите небольшую потерю резкости ...

Я не знаю, в других программах, но в darktable вы можете использовать модуль "дизеринг":

dithering module in dt

Я попробовал тот же трюк на маленьком изображении в формате JPEG, и вот результат: before:

before dithering

и после:

after dithering

Теперь гистограмма гораздо лучше себя ведет; в некоторых случаях это может уменьшить цветовые полосы.

2 голосов
/ 30 ноября 2012

8-битное изображение, скорее всего, будет иметь усеченные значения пикселей. Что вам нужно сделать, это интерполировать недостающие биты младшего разряда перед применением преобразования цвета. Невозможно узнать, что представляют собой пропущенные значения, вам придется сделать определенные предположения, например, гладкость.

Чтобы ответить на ваш вопрос, я не знаю ни одного графического редактора, предлагающего эту функцию. Почему бы и нет? Скорость для одного, команда кривых / уровней в большинстве фоторедакторов достаточно быстра, чтобы работать в режиме реального времени, чтобы вы могли увидеть эффект на вашем изображении. Теперь у вас может быть отдельная функция, которая работает без предварительного просмотра, но это будет довольно высокоуровневая функция, и вам придется реализовать ее для всех операций, которые применяют масштабирование к значениям пикселей. Наконец, эта проблема полностью исчезнет, ​​если у вас есть камера с поддержкой RAW и 16-битный рабочий процесс.

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

Не стоит слишком расстраиваться из-за гистограммы вашего изображения, ошибка квантования этой операции вряд ли будет заметна, если на изображении будет какой-либо шум, если у вас нет областей с мелкими цветовыми градиентами (однако в случаях с плавными переходами и небольшим шумом интерполяция будет работать очень хорошо).

2 голосов
/ 05 ноября 2012

С теоретической точки зрения не существует «истинного» способа вернуть эти значения обратно. Ядра свертки (например, сглаживание по Гассу или ядро, сохраняющее края) и сглаживание сделают предположения, чтобы вернуть их, ранговые фильтры не могут (как медиана).

Однако нет способа «узнать», какими должны быть эти значения до квантования, так что это субъективное суждение, какой фильтр на основе свертки вы предпочитаете. Возможно, вам придется использовать несколько фильтров и замаскировать изображение в том месте, куда вы хотите его применить.

Лучший способ преодолеть это - обработать в 16-битном режиме, чтобы «пространство значений в форме зебры» было передискретизировано при переходе на 8 бит. Это должно устранить большинство пропущенных значений в 8-битном пространстве, если вы не добавили много контраста / усиления.

0 голосов
/ 30 ноября 2012

Таким образом, все внесенные вами изменения будут разрушительными.

пара лучших практик для минимизации контрастного повреждения, которое может возникнуть из-за чрезмерной регулировки.

  1. Начните с полностью нейтрального или логарифмически обработанного изображения в 16 битах

  2. Не делайте постоянных уровней, кривых, регулировки оттенка / насыщенности или яркости. держать все в слоях.

  3. НЕ ИСПОЛЬЗУЙТЕ УРОВНИ! Кривые намного лучше при градуировке значений.

  4. Свести и сохранить в 8 бит.

Что касается алгоритмического вопроса, я не знаю ничего, что могло бы лучше или «справиться» с этим. Это для научной работы?

...