You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中RGB图像转YUV444格式方法咨询及YCbCr相关疑问

在Python中实现RGB到YUV444的转换及YCbCr与YUV的区别

你观察得没错:OpenCV和PIL/Pillow中提供的“YUV”相关转换,实际上都是YCbCr格式——YCbCr是YUV色彩空间的数字化实现版本,广泛应用于数字图像与视频领域。而YUV444指的是采样格式,即Y、U、V三个分量的分辨率完全一致(每个像素都对应完整的Y、U、V值,无下采样),因此我们可以基于YCbCr的转换逻辑,直接得到YUV444格式的输出。

以下是几种可行的实现方法:

方法1:使用OpenCV实现

OpenCV的cv2.cvtColor函数支持COLOR_RGB2YCrCb转换,输出的结果就是4:4:4采样的YCbCr(即YUV444),因为OpenCV默认不会对分量进行下采样。

import cv2
import numpy as np

# 读取图像并转为RGB格式(OpenCV默认读入为BGR)
img_bgr = cv2.imread('input.jpg')
img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)

# 转换为YCbCr(YUV444)
img_yuv444 = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2YCrCb)

# 拆分Y、Cr、Cb分量(Cr对应U,Cb对应V,部分标准顺序可能有差异)
Y, Cr, Cb = cv2.split(img_yuv444)

# 合并分量回YUV444格式(可选)
merged_yuv = cv2.merge([Y, Cr, Cb])

方法2:使用PIL/Pillow实现

Pillow的Image.convert('YCbCr')方法同样会输出4:4:4采样的图像,每个像素包含完整的Y、Cb、Cr分量,符合YUV444的定义。

from PIL import Image

# 读取并转为RGB图像
img_rgb = Image.open('input.jpg').convert('RGB')

# 转换为YCbCr(YUV444)
img_yuv444 = img_rgb.convert('YCbCr')

# 拆分分量
Y, Cb, Cr = img_yuv444.split()

# 合并分量(可选)
merged_yuv = Image.merge('YCbCr', (Y, Cb, Cr))

方法3:手动计算(基于标准公式)

如果需要完全自定义转换逻辑,可以基于ITU-R BT.601或BT.709标准的公式手动计算,得到严格的YUV444分量。

以BT.601标准为例,转换公式如下:

Y = 0.299R + 0.587G + 0.114B
U = -0.14713
R - 0.28886G + 0.436B + 128
V = 0.615R - 0.51499G - 0.10001*B + 128

示例代码:

import numpy as np
from PIL import Image

img_rgb = Image.open('input.jpg').convert('RGB')
rgb_array = np.array(img_rgb).astype(np.float32)

R, G, B = rgb_array[..., 0], rgb_array[..., 1], rgb_array[..., 2]

# 计算YUV分量
Y = 0.299 * R + 0.587 * G + 0.114 * B
U = (-0.14713 * R - 0.28886 * G + 0.436 * B) + 128
V = (0.615 * R - 0.51499 * G - 0.10001 * B) + 128

# 转换为8位整数格式的YUV444数组
yuv444_array = np.stack([Y, U, V], axis=-1).astype(np.uint8)

# 转为PIL图像(可选)
img_yuv444 = Image.fromarray(yuv444_array, mode='YCbCr')

内容的提问来源于stack exchange,提问作者mrgreen3325

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 17:35:43