Регулировка яркости, контрастности, гаммы с помощью C ++, Qt - PullRequest
3 голосов
/ 13 февраля 2011

Какой самый простой способ правильно настроить яркость, контрастность и гамму изображения.Слово «правильно» здесь, потому что я знаю, как неправильно выполнить эти настройки: перебрать все пиксели RGB и сделать для каждого канала следующее:

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 );
}

Хотя этот код добавит эффект яркостиизменение контрастности / гаммы, выглядит не очень хорошо.Профессиональное программное обеспечение для обработки изображений, такое как Photoshop, делает это намного лучше.

Какая библиотека лучше всего подходит для такого рода вещей?Я знаю, что есть ImageMagick, но он действительно тяжелый, я не хочу ссылаться только на одну функцию из сотен.Есть ли легкие альтернативы?

1 Ответ

2 голосов
/ 13 февраля 2011

определенно OpenCV

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...