Что является самым простым способом для правильно настроить яркость, контрастность и гамму изображения. Слово «правильно» здесь, потому что я знаю, как выполнить эти настройки ненадлежащие: цикл по всем пикселям RGB и выполните следующие действия для каждого канала:Яркость, контрастность, регулировка гаммы с C++, Qt
int changeBrightness(int value, int brightness) {
return qBound<int>(0, value + brightness * 255/100, 255);
}
int changeContrast(int value, int contrast) {
return qBound<int>(0, int((value - 127) * contrast/100) + 127, 255);
}
int changeGamma(int value, int gamma) {
return qBound<int>(0, int(pow(value/255.0, 100.0/gamma) * 255), 255);
}
Хотя этот код добавит эффект яркость/conrast/гамма-изменение, это выглядит не очень хорошо. Профессиональное программное обеспечение для обработки изображений, например Photoshop, намного лучше.
Какая библиотека лучше всего подходит для такого рода вещей? Я знаю, что есть ImageMagick, но это действительно тяжело, я не хочу ссылаться только на одну особенность сотен. Есть ли легкие альтернативы?
Photoshop может очень хорошо быть что-то делать в дополнение к только основные настройки BRI/CON/гамма, если он не дает те же результаты, как вашей реализации. Я голосовал за OpenCV. –
ImageMagick показывает похожие результаты в Photoshop. Я думаю, что они оба используют правильную технику. Я уверен, что это не ракетная хирургия, но все еще довольно сложная. –