【问题标题】:Easy way to convert color range to another?将颜色范围转换为另一种颜色范围的简单方法?
【发布时间】:2011-10-24 15:29:21
【问题描述】:

我想转换这张图片中的紫色:

到蓝色如:

有没有一种简单的方法可以做到这一点?如果没有,是否有一种简单的方法可以复制相同的效果?

谢谢

【问题讨论】:

    标签: image image-processing colors image-editing


    【解决方案1】:

    您可以将图像分成 R、G 和 B 通道,并将红色通道替换为零,只留下 G 和 B 通道。

    Mathematica 中的示例:

    i = Import["http://tinyurl.com/3wqklof"];
    ColorCombine@{ImageSubtract[#[[1]], #[[1]]], #[[2]], #[[3]]} &@ ColorSeparate@i
    

    编辑

    或者,如果您需要“精确”的蓝色图像,请在“HSB”颜色空间中分离,将 H 矩阵的所有非零值替换为 2/3(蓝色),保持 S 和 B 分量不变。

    例子:

    ColorCombine[{Image[2/3 ImageData@ImageAdd[#[[1]], #[[1]]]], #[[2]], #[[3]]} &@
                  ColorSeparate[i, "HSB"], "HSB"]
    

    【讨论】:

    • 天才!感谢您还附上代码解释。但是,与原始输入相比,为什么输出更小/降级了?
    • @Alede 我使用了默认的 Mathematica 输出图像大小。普通的老懒惰。
    猜你喜欢
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 2013-08-15
    • 2023-04-03
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    相关资源
    最近更新 更多