Прочее фото-видео

Задача про оттенки

Люди добрые, плиз хелп. Кто знает как решить задачу? Программу составлять не обязательно. Можно только задачу.
Елена Усенко
Елена Усенко
1 197
Начнём с того, что задача не имеет отношения к вычислению яркости или чёрно-белого значения, соответствующего восприятию человеком определенного цвета.

Требуется привести три заданных значения относительной яркости в диапазон 8-бит на канал, т. е. максимальное значение из трех обязано стать значением 255. Т.е. цвет с исходными значениями 1, 1, 1; где относительная яркость всех трех цветов равна станет цветом 255, 255, 255.

Отдельно про правила округления: цвет где, скажем яркость первого канала в 10 раз выше двух других, т.е. относительные значения цвета 100, 10, 10 и 1000, 100, 100 станут одним цветом 255, 25, 25 (либо цветом 255, 26, 26, что зависит как от правил округления (математическое round() / отбрасывание дробного значения ф-циями преобразования типов), так и от математики, которая в США и России отличается тем, что значение 0.5 может округляться либо до четного (округление банкира), либо вверх соответственно).

В общем, в простейшем случае, на плюсах, без ввода данных получается следующее, на питон переведете сами:

 #include  
#include
using namespace std;

int main()
{
int r = 1, g = 3, b = 15;
double maximum = std::max({r, g, b});
if (maximum == 0)
maximum = 1;
cout
ТЭ
Темирхан Энезаров
30 155
Лучший ответ
Елена Усенко Спасибо за полное разъяснение.)
..это не задача. это - формула, в которую надо подставлять значения.
Елена Усенко Как бы не подставлял, ВЫВОД выходит не тот.
Относительной яркостью считается коэффициент от нуля до единицы, где 0 является чёрным цветом, а 1 белым цветом. Для получения этого значения используется следующая формула: L = 0,2126 * R + 0,7152 * G + 0,0722 * B. Самый сложный момент здесь — получение необходимых значений R (red), G (green), B (blue).
Юра Корнев
Юра Корнев
15 513
Маришка Высокинская(Никитина
 0.2126+0.7152+0.0722=1.0000 
Поэтому для получения максимальной яркости R,G и B должны быть равны 1.
Елена Усенко Спасибо, но нужный вывод не получается.

Похожие вопросы