gpt4 book ai didi

python - RGB 到 YCbCr 的转换问题

转载 作者:太空狗 更新时间:2023-10-29 23:59:25 25 4
gpt4 key购买 nike

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

python 中的公式

    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 PNG 转换为 YCbCr 4:2:2?

最佳答案

这应该可以(大约)

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

关于python - RGB 到 YCbCr 的转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19459831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com