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 转的结果):

  • 相关阅读:
    ADO.NET调用存储过程
    存储过程
    web Servise(服务)
    ADO.NET连接池
    ADO.NET
    常用语法2
    常用语法
    修改pip源为国内网站
    模块
    random模块
  • 原文地址:https://www.cnblogs.com/darkchii/p/12868450.html
Copyright © 2011-2022 走看看