Я заинтересован в изменении отдельных цветовых каналов пикселей Halide. Например, как сделать красный канал ярче, а зеленый и синий оставить без изменений? Увеличение яркости всех цветов для всех пикселей будет выглядеть так:
Halide::Expr value = input(x, y, c);
value = value * 2.0f;
brighter(x, y, c) = value;
Но при попытке осветлить один канал описанным ниже способом выдается ошибка.
Halide::Expr value = input(x, y, c);
value(x,y,0) = value(x,y,0) * 2.0f; // brighten red
value(x,y,1) = value(x,y,2); // keep green the same
value(x,y,2) = value(x,y,3); // keep blue the same
brighter(x, y, c) = value;
Ошибка:
ImgPipe_Halide.cpp:88:14: error: no match for call to ‘(Halide::Expr) (Halide::Var&, Halide::Var&, int)’
Итак, как я могу считывать значения отдельных каналов из пикселей и как их изменять?