У меня есть полутоновое изображение из фотографии. Я решил, что определенные части изображения являются underilluminated, и что пиксель с яркостью Y = 0.8 должен на самом деле быть скорректирован к 90%-му серому, т.е. тому пикселю нужно дать яркость 0.9. Мой вопрос состоит в том, как я масштабирую другие пиксели поблизости? Я - вполне уверенное умножение всех яркостей 9/8, является неправильным, потому что я неопределенно не забываю слышать, что для взгляда универсальным, масштабирование должно быть нелинейным. Но я испытываю затруднения при нахождении уравнения, которое позволило бы мне сделать успехи. (Конечно, я на самом деле пишу программу для внесения этой корректировки в очень многие фотографии.)
Источник моих пикселей является pbmplus PGM формат, о котором говорится в странице справочника:
Каждый уровень яркости является числом, пропорциональным интенсивности пикселя, скорректированного Rec CIE. 709 гамма функций передачи. (Что функция передачи указывает гамма количество 2,2 и имеет линейный раздел для маленькой интенсивности). Значение нуля является поэтому черным. Значение Maxval представляет белый CIE D65 и самое интенсивное значение в изображении и любом другом изображении, с которым могло бы быть сравнено изображение.
Если бы я понял это лучше, то у меня, вероятно, была бы лучшая идея, как продолжить двигаться.
Я нашел связанный вопрос на создании изображения универсальной яркости.
Благодарен за то, что Shmoopty получает меня на ходу. Я признал, что Ваш ответ затем добавил некоторую информацию к нему.
addtags.html в документации libtiff содержит информацию об обработке нестандартных тегов (по умолчанию они игнорируются). Может быть, в этом проблема?
Трудно записать математику в уценке, но ключевой алгебраический закон(y**a)**b == y**(a*b) == y**(b*a) == (y**b)**a
Если вы примените этот закон, вы можете определить, что гамма-поправки коммутируют, так что это нормально, чтобы применить гамма-поправку к уже скорректированным значениям. —NR