【问题标题】:OpenGL ES shader to convert color image to black-and-white infrared?OpenGL ES着色器将彩色图像转换为黑白红外?
【发布时间】:2011-06-08 07:05:34
【问题描述】:

我能够创建一个片段着色器来将彩色图像转换为灰度,通过:

 float luminance = pixelColor.r * 0.299 + pixelColor.g * 0.587 + pixelColor.b * 0.114;
 gl_FragColor = vec4(luminance, luminance, luminance, 1.0);

现在我想模拟一个 Photoshop 通道混合器效果:

如何将% 百分比值(-70%、+200%、-30%)转换为r g b 浮点数(例如 0.299、0.587、0.114)?

【问题讨论】:

    标签: image-processing opengl-es shader


    【解决方案1】:

    你应该从学校知道 10% 的值意味着将该值乘以 0.1,所以只需使用 (-0.7, 2.0, -0.3)

    【讨论】:

    • 我认为范围不一样,photoshop 的范围是-200% 到 200%,而 Float Color 是从 0 到 1,所以我猜这不是同一个计算方法
    • 没有错,如果将所有值相加,总得到 1.0 (100%) -> -0.7 + 2.0 - 0.3 = 1.0。一个问题可能是负值。如果遇到问题,只需将每个值加 1 并除以 4。-> ((-0.7 + 1) + (2.0 + 1) +(-0.3 + 1)) / 4 = 1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 2017-10-10
    相关资源
    最近更新 更多