【问题标题】:Color over grayscale image灰度图像上的颜色
【发布时间】:2013-05-08 22:50:04
【问题描述】:

我想只用一种颜色为灰度图像着色。所以我有例如像素:RGB(34,34,34),我想用颜色着色它:RGB(200,100,50)以获得新的RGB像素。所以我对图像中的每个像素都这样做了。

白色像素得到颜色:RGB(200,100,50),较暗的像素得到比 RGB(200,100,50) 更深的颜色。

所以结果是带有黑色和选定颜色的灰度而不是黑色和白色。

我将在没有任何内置函数的情况下对这个硬核进行编程。

与此类似:Image 或此:Image

【问题讨论】:

    标签: image-processing colors grayscale


    【解决方案1】:

    根据您的描述,我认为您正在寻找一种混合算法。

    您需要的是 blendingPercentage (bP)。

    新红色 = red1 * bP + red2 * (1 - bP)
    新绿色 = green1 * bP + green2 * (1 - bP)
    新蓝色 = blue1 * bP + blue2 * (1 - bP)

    你的基色是 RGB 34 34 34;要混合的颜色是 RGB 200 100 50
    例如 BlendingPercentage = 50% -> 0.5

    因此:
    新红色 = 34 * 0.5 + 200 * (1 - 0.5) = 117
    新绿色 = 34 * 0.5 + 100 * (1 - 0.5) = 67
    新蓝色 = 34 * 0.5 + 50 * (1 - 0.5) = 42

    【讨论】:

    【解决方案2】:

    您需要做的就是使用灰色与白色的比例作为颜色的乘数。我想你会发现这比混合效果更好。

    new_red = gray * target_red / 255
    new_green = gray * target_green / 255
    new_blue = gray * target_blue / 255
    

    【讨论】:

    • 是的,这给出了完美的结果,因为混合使默认颜色更白。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2012-11-06
    • 1970-01-01
    相关资源
    最近更新 更多