zoukankan      html  css  js  c++  java
  • python

      转换原理很简单,只要知道变换矩阵就简单了,这个可以参考一些《数字图像处理》相关书籍或者查维基就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 转的结果):

  • 相关阅读:
    Linq to OBJECT延时标准查询操作符
    LINQ to XML
    动态Linq(结合反射)
    HDU 1242 dFS 找目标最短路
    HDu1241 DFS搜索
    hdu 1224 最长路
    BOJ 2773 第K个与m互质的数
    ZOJ 2562 反素数
    2016 ccpc 杭州赛区的总结
    bfs UESTC 381 Knight and Rook
  • 原文地址:https://www.cnblogs.com/darkchii/p/12868450.html
Copyright © 2011-2022 走看看