我对修改卤化物像素的单个颜色通道很感兴趣。例如,我怎样才能使红色通道变亮但保持绿色和蓝色通道不变?使所有像素的所有颜色变亮如下所示:
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)’
那么,如何从像素中读取单个通道值,以及如何修改它们?