首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >灰度CMYK像素

灰度CMYK像素
EN

Stack Overflow用户
提问于 2013-02-22 22:28:13
回答 1查看 3.2K关注 0票数 3

我需要将CMYK图像转换为灰度CMYK图像。起初,我认为我可以使用与RGB ->灰度转换相同的方法,比如(R +G+ b) /3或max(r,g,B) /2+ min(r,g,b)。但不幸的是,这对CMYK很不利,因为CMY和K是多余的。黑色cmyk (0,0,0,255)将变为64。我应该直接使用

代码语言:javascript
复制
int grayscaled = max((c + m + y) / 3, k)

或者会不会更棘手?我不确定,因为CMYK实际上是一个冗余的颜色模型,相同的颜色可以用不同的方式编码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-23 10:16:28

有几种方法可以将RGB转换为灰度,提到的通道的平均值是其中之一。使用色彩空间YCbCr中的Y通道以及LAB中的L通道以及其他选项也是一个常见的选项。

根据http://www.easyrgb.com/index.php?X=MATH中的公式,将CMYK转换为RGB很便宜,然后您可以使用众所周知的方法将其转换为灰度。假设cmyk在0,1范围内,我们可以将其转换为灰度亮度,如下所示:

代码语言:javascript
复制
def cmyk_to_luminance(c, m, y, k):
    c = c * (1 - k) + k
    m = m * (1 - k) + k
    y = y * (1 - k) + k

    r, g, b = (1 - c), (1 - m), (1 - y)
    y = 0.299 * r + 0.587 * g + 0.114 * b
    return y

另请参阅http://en.wikipedia.org/wiki/Grayscale,了解更多有关转换为灰度的信息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15026409

复制
相关文章

相似问题

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