首页 > 解决方案 > 跨轴的numpy进程

问题描述

我有一个将 RGB 图像转换为 YCbCr 的函数。图像是 hwc 格式,其中 h 是高度,w 是宽度,c 是通道。

我有一个 NumPy 数组,其中包含以下格式的 RGB 中的多个图像:

nhwc 其中 n 是图像的数量。

我想将所有图像从 RGB 转换为 YCbCr。而不是循环n,正确的方法是什么?

#Function to convert RGB to YCrCb (img in hwc format)
def processimg(img):
    img = np.array(img).astype(np.float32)
    ycbcr = convert_rgb_to_ycbcr(img)
    return ycbcr

def convert_rgb_to_ycbcr(img, dim_order='hwc'):
    
    y = 16. + (64.738 * img[..., 0] + 129.057 * img[..., 1] + 25.064 * img[..., 2]) / 256.
    cb = 128. + (-37.945 * img[..., 0] - 74.494 * img[..., 1] + 112.439 * img[..., 2]) / 256.
    cr = 128. + (112.439 * img[..., 0] - 94.154 * img[..., 1] - 18.285 * img[..., 2]) / 256.
    
    return np.array([y, cb, cr]).transpose([1, 2, 0])

标签: pythonnumpy

解决方案


推荐阅读