首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RGB到YCbCr的转换问题

RGB到YCbCr的转换问题
EN

Stack Overflow用户
提问于 2013-10-19 06:10:46
回答 1查看 6.7K关注 0票数 6

我需要将RGB图像转换到YCbCr颜色空间,但是有一些颜色偏移问题,我使用了所有的公式,得到了相同的结果。

python中的公式

代码语言:javascript
复制
    cbcr[0] =  int(0.299*rgb[0] + 0.587*rgb[1] + 0.114*rgb[2]) #Y
    cbcr[1] =  int(-0.1687*rgb[0] - 0.3313*rgb[1] + 0.5*rgb[2] + 128) #Cb
    cbcr[2] =  int( 0.5*rgb[0] - 0.4187*rgb[1] - 0.0813*rgb[2] + 128) #Cr

我知道我应该用不同的方式记录数据得到相同的图像,但我得到了错误的颜色结果。

http://i.imgur.com/zHuv8yq.png原件

http://i.imgur.com/Ek2WEA1.png结果

那么我怎样才能得到正常的图像或者把RGB转换成YCbCr 4:2:2呢?

EN

回答 1

Stack Overflow用户

发布于 2013-12-04 20:49:54

这应该是可行的(大约)

代码语言:javascript
复制
def _ycc(r, g, b): # in (0,255) range
    y = .299*r + .587*g + .114*b
    cb = 128 -.168736*r -.331364*g + .5*b
    cr = 128 +.5*r - .418688*g - .081312*b
    return y, cb, cr

def _rgb(y, cb, cr):
    r = y + 1.402 * (cr-128)
    g = y - .34414 * (cb-128) -  .71414 * (cr-128)
    b = y + 1.772 * (cb-128)
    return r, g, b

>>> c = _ycc(10, 20, 30)
>>> _rgb(*c)
(10.000005760000002, 20.000681726399996, 29.996457920000005)

See also Wikipedia

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

https://stackoverflow.com/questions/19459831

复制
相关文章

相似问题

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