首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Halide中单独修改颜色通道?

如何在Halide中单独修改颜色通道?
EN

Stack Overflow用户
提问于 2016-07-06 05:38:14
回答 1查看 427关注 0票数 1

我对修改卤化物像素的个别颜色通道感兴趣。例如,我如何才能照亮红色通道,但保持绿色和蓝色通道不变?将所有像素的颜色加亮如下所示:

代码语言:javascript
复制
Halide::Expr value = input(x, y, c);
value = value * 2.0f;
brighter(x, y, c) = value;

但是,当试图用下面的方法亮亮单个通道时,会收到一个错误。

代码语言:javascript
复制
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;

错误:

代码语言:javascript
复制
ImgPipe_Halide.cpp:88:14: error: no match for call to ‘(Halide::Expr) (Halide::Var&, Halide::Var&, int)’

那么,我如何从像素读取单个通道值,以及如何修改它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-06 06:58:33

一种方法是使用卤化物的选择函数

示例:

代码语言:javascript
复制
value = Halide::select(c == 0, input(x,y,c) * 2.0f,
                       input(x,y,c));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38216948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档