首页 > 编程语言 > 详细

python - YUV转RGB

时间:2020-05-11 13:43:33      阅读:343      评论:0      收藏:0      [点我收藏+]

  转换原理很简单,只要知道变换矩阵就简单了,这个可以参考一些《数字图像处理》相关书籍或者查维基就ok了。

import numpy as np
import cv2 as cv


def yuv2rgb(img):
    W = np.array([
        [1, 0., 1.13983],
        [1, -0.39465, -0.58060],
        [1, 2.03211, 0.]
    ])
    imc = img.copy()
    imc = imc.astype(np.float)
    h, w, c = imc.shape
    for i in range(h):
        for j in range(w):
            # imc[i, j][0] -= 16   # Y
            imc[i, j][1] -= 128  # U
            imc[i, j][2] -= 128  # V
            imc[i, j] = np.matmul(W, imc[i, j])
    imc = imc.astype(np.uint8)
    return imc


img = cv.imread(‘C:/Users/darkchii/Pictures/original_golden_bridge-300x169.jpg‘, cv.IMREAD_UNCHANGED)
im1 = cv.cvtColor(img, cv.COLOR_RGB2YUV)
im2 = yuv2rgb(im1)
im3 = cv.cvtColor(im1, cv.COLOR_YUV2RGB)

cv.imshow(‘1‘, img)
cv.imshow(‘2‘, im1)
cv.imshow(‘3‘, im2)
cv.imshow(‘4‘, im3)

cv.waitKey(0)

  测试结果(图 1 是 RGB 图,图 2 是使用 opencv RGB2YUV 转的,图 3 是自己编写的 YUV2RGB 转的结果,图 4 是使用 opencv 的 YUV2RGB 转的结果):

技术分享图片

 

python - YUV转RGB

原文:https://www.cnblogs.com/darkchii/p/12868450.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!