【问题标题】:convert RGB to grayscale + B?将RGB转换为灰度+ B?
【发布时间】:2012-08-26 04:20:27
【问题描述】:

我正在尝试制作一种照片效果,您可以从红-绿-蓝通道三元组中减去一个或两个通道。例如,假设我不想在最终图像中出现任何绿色或红色。一种方法是简单地将绿色和红色分量归零。但是,使用这种方法,我会丢失许多对象的边缘、形状和阴影。我真正想要的是更多“带有蓝色提示的灰度”效果(特别是如果该蓝色可以代表图像中的原始蓝色)。我用什么公式来做这个?

【问题讨论】:

    标签: image-processing rgb formula


    【解决方案1】:
    B = R*0.299 + G*0.587 + B*0.114
    R = G = 0
    

    【讨论】:

      【解决方案2】:
      Blue = 0.299×Red + 0.587×Green + 0.114×Blue
      

      这个公式很流行,但它不正确。它不会给你带来好的结果。为了获得正确的结果,您可能需要使用以下公式:首先转换为线性色彩空间,然后使用不同的权重:

      Blue = 0.2126×Red + 0.7152×Green + 0.0722×Blue
      

      正确的近似是:

      Blue = (0.2126×Red^(2.2) + 0.7152×Green^(2.2) + 0.0722×Blue^(2.2))^(1/2.2)
      Green=Red=0
      

      【讨论】:

      • 我给定的公式已在维基百科中引用:- en.wikipedia.org/wiki/Grayscale
      • 我不想失去所有的阴影。我可以保留一些绿色和红色分量,只要它们等于并且小于我的蓝色分量,这不是真的吗?
      猜你喜欢
      • 2020-04-29
      • 1970-01-01
      • 2010-10-15
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 2014-02-26
      • 2016-10-18
      相关资源
      最近更新 更多