【python】RGB to YUV and YUV to RGB

在這里插入圖片描述

文章目錄

  • 1、YUV
  • 2、YUV vs RGB
  • 3、RGB to YUV
  • 4、YUV to RGB
  • 附錄——YUV NV12 vs YUV NV21
  • 參考

1、YUV

YUV 顏色空間,又常被稱作 YCbCr 顏色空間,是用于數字電視的顏色空間,在 ITU-R BT.601、BT.709、BT.2020 標準中被明確定義,這三種標準分別針對標清、高清、超高清數字電視。Y是亮度,Cb(U)、Cr(V)表示色度,三個分量是相互獨立的,它們分別表示圖像的亮度、藍色色差和紅色色差。

Y 分量表示圖像的亮度信息,它描述了圖像的明暗程度,是黑白電視信號需要的內容。

U 分量表示藍色色差,它描述了藍色和綠色之間的差異,用于還原圖像中的藍色和綠色。

V分量表示紅色色差,它描述了紅色和綠色之間的差異,用于還原圖像中的紅色和綠色。

在廣播電視中,使用 YCbCr 可解決黑白電視和彩色電視之間的信號兼容問題。


YUV 格式的發展初衷是為了解決彩色電視機與黑白電視的兼容問題。在彩色電視出現之前,電視信號只有亮度(Y)信息,即黑白信號。

彩色電視規格制定時,采用 YUV/YIQ 格式來處理彩色電視圖像,把 UV 視作表示彩度的C(Chrominance或Chroma)。

如果忽略 C 信號,剩下的 Y 信號就跟之前的黑白電視信號相同,這樣彩色電視機就能與黑白電視機兼容。

此外,利用人類眼睛對亮度變化的敏感性高于對顏色變化的敏感性這一生理特性,YUV 格式允許降低色度的帶寬,從而降低了傳輸帶寬。

2、YUV vs RGB

在這里插入圖片描述

3、RGB to YUV

以 BT601: 標清數字電視(SDTV) 8bit 為例

在這里插入圖片描述

import cv2
import numpy as npdef merge(u, v):if u.shape == v.shape:uv = np.zeros(shape=(u.shape[0], u.shape[1] * 2))for i in range(u.shape[0]):for j in range(u.shape[1]):uv[i, 2 * j] = u[i, j]uv[i, 2 * j + 1] = v[i, j]return uvelse:print("u 和 v 的 shape 不相等")def img2yuv(img, dtype):if img.ndim == 3:b = img[:, :, 0]g = img[:, :, 1]r = img[:, :, 2]y = (0.299*r + 0.587*g + 0.114*b)u = (-0.169*r - 0.331*g + 0.5*b + 128)[::2, ::2]v = (0.5*r - 0.419*g - 0.081*b + 128)[::2, :

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86161.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86161.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86161.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

運行示例程序和一些基本操作

歡迎 ----> 示例 --> 選擇sample CTRL B 編譯代碼 CTRL R 運行exe 項目 中 Shadow build 表示是否 編譯生成文件和 源碼是否放一塊 勾上不在同一個地方 已有項目情況下怎么打開項目 方法一: 左鍵雙擊 xxx.pro 方法二: 文件菜單里面 選擇打開項目

計算機網絡第2章(下):物理層傳輸介質與核心設備全面解析

目錄 一、傳輸介質1.1 傳輸介質的分類1.2 導向型傳輸介質1.2.1 雙絞線(Twisted Pair)1.2.2 同軸電纜(Coaxial Cable)1.2.3 光纖(Optical Fiber)1.2.4 以太網對有線傳輸介質的命名規則 1.3 非導向型傳輸介質…

PHP文件包含漏洞詳解:原理、利用與防御

PHP文件包含漏洞詳解:原理、利用與防御 什么是文件包含漏洞? 文件包含漏洞是PHP應用程序中常見的安全問題,當開發者使用包含函數引入文件時,如果傳入的文件名參數未經嚴格校驗,攻擊者就可能利用這個漏洞讀取敏感文件…

5.4.2 Spring Boot整合Redis

本次實戰主要圍繞Spring Boot與Redis的整合展開,首先創建了一個Spring Boot項目,并配置了Redis的相關屬性。接著,定義了三個實體類:Address、Family和Person,分別表示地址、家庭成員和個人信息,并使用Index…

java內存模型JMM

Java 內存模型(Java Memory Model,JMM)定義了 Java 程序中的變量、線程如何和本地內存以及主內存進行交互的規則。它主要涉及到多線程環境下的共享變量可見性、指令重排等問題,是理解并發編程中的關鍵概念。 核心概念&#xff1a…

配置git命令縮寫

以下是 Git 命令縮寫的配置方法及常用方案,適用于 Linux/macOS/Windows 系統: 🔧 一、配置方法 1. 命令行設置(推薦) # 基礎命令縮寫 git config --global alias.st status git config --global alias.co che…

準確--k8s cgroup問題排查

k8s cgroup問題排查 6月 06 17:20:39 k8s-node01 containerd[1515]: time"2025-06-06T17:20:39.42902033408:00" levelerror msg"StartContainer fo r \"46ae0ef9618b96447a1f28fd2229647fe671e8acbcec02c8c46b37051130c8c4\" failed" error&qu…

Go 中 map 的雙值檢測寫法詳解

Go 中 map 的雙值檢測寫法詳解 在 Go 中,if char, exists : pairs[s[i]]; exists { 是一種利用 Go 語言特性編寫的優雅條件語句,用于檢測 map 中是否存在某個鍵。讓我們分解解釋這種寫法: 語法結構解析 if value, ok : mapVariable[key]; …

C# Wkhtmltopdf HTML轉PDF碰到的問題

最近碰到一個Html轉PDF的需求,看了一下基本上都是需要依賴Wkhtmltopdf,需要在Windows或者linux安裝這個可以后使用。找了一下選擇了HtmlToPDFCore,這個庫是對Wkhtmltopdf.NetCore簡單二次封裝,這個庫的好處就是通過NuGet安裝HtmlT…

grafana 批量視圖備份及恢復(含數據源)

一、grafana 批量視圖備份 import requests import json import urllib3 import osfrom requests.auth import HTTPBasicAuthfilename_folders_map "folders_map.json" type_folder "dash-folder" type_dashboard "dash-db"# Grafana服務器地…

.Net Framework 4/C# 關鍵字(非常用,持續更新...)

一、is 關鍵字 is 關鍵字用于檢查對象是否于給定類型兼容,如果兼容將返回 true,如果不兼容則返回 false,在進行類型轉換前,可以先使用 is 關鍵字判斷對象是否與指定類型兼容,如果兼容才進行轉換,這樣的轉換是安全的。 例如有:首先創建一個字符串對象,然后將字符串對象隱…

露亦如電 · 時之沙 | 讓遺憾在灰燼里隨風而去

注:略作重排,未整理去重。 一個人最了不起的能力:快速翻篇 原創 十點邀約作者 棠唐 2022 年 11 月 29 日 20:12 福建 《了凡四訓》有言:“從前種種,譬如昨日死;從后種種,譬如今日生。” 人生猶…

python爬蟲:Newspaper3k 的詳細使用(好用的新聞網站文章抓取和解析的Python庫)

更多內容請見: 爬蟲和逆向教程-專欄介紹和目錄 文章目錄 一、Newspaper3k 概述1.1 Newspaper3k 介紹1.2 主要功能1.3 典型應用場景1.4 安裝二、基本用法2.2 提取單篇文章的內容2.2 處理多篇文檔三、高級選項3.1 自定義配置3.2 分析文章情感四、實戰案例4.1 構建新聞摘要聚合器…

FastAPI安全機制:從OAuth2到JWT的魔法通關秘籍

title: FastAPI安全機制:從OAuth2到JWT的魔法通關秘籍 date: 2025/06/07 08:40:35 updated: 2025/06/07 08:40:35 author: cmdragon excerpt: FastAPI 的安全機制基于 OAuth2 規范、JWT 和依賴注入系統三大核心組件,提供了標準化的授權框架和無狀態的身份驗證。OAuth2 密碼流…

超大規模芯片驗證:基于AMD VP1902的S8-100原型驗證系統實測性能翻倍

引言&#xff1a; 隨著AI、HPC及超大規模芯片設計需求呈指數級增長原型驗證平臺已成為芯片設計流程中驗證復雜架構、縮短迭代周期的核心工具。然而&#xff0c;傳統原型驗證系統受限于單芯片容量&#xff08;通常<5000萬門&#xff09;、多芯片分割效率及系統級聯能力&#…

python電子學會三級的零碎筆記

1、join (1) .join(s)\n?&#xff1a;這種方式首先將列表s中的每個元素通過空格連接成一個字符串&#xff0c;然后在字符串末尾添加一個換行符\n。 ?示例?&#xff1a;如果s [a, b, c]&#xff0c;則 .join(s)\n的結果是a b c\n&#xff0c;寫入文件時所有元素會在一行…

TongWeb7.0動態密鑰說明

為解決TongWeb密碼硬編碼問題&#xff0c;TongWeb7.0.4.9_M5及之后版本采用動態密鑰&#xff0c;在使用過程或升級過程中可能會遇到密碼加密異常問題。對其做一個說明&#xff1a; 在TongWeb單節點情況下&#xff0c;根節點和通過domain命令建的域&#xff0c;數據源用戶名和密…

【LLMs篇】14:擴散語言模型的理論優勢與局限性

項目內容論文標題擴散語言模型的理論優勢與局限性 (Theoretical Benefit and Limitation of Diffusion Language Model)研究背景擴散語言模型&#xff08;尤其是掩碼擴散模型 MDM&#xff09;因其并行生成能力被認為有潛力超越自回歸模型&#xff0c;但其在效率-準確性上的權衡…

歡樂熊大話藍牙知識14:用 STM32 或 EFR32 實現 BLE 通信模塊:從0到藍牙,你也能搞!

&#x1f680; 用 STM32 或 EFR32 實現 BLE 通信模塊&#xff1a;從0到藍牙&#xff0c;你也能搞&#xff01; “我能不能自己用 STM32 或 EFR32 實現一個 BLE 模塊&#xff1f;” 答案當然是&#xff1a;能&#xff01;還能很帥&#xff01; &#x1f468;?&#x1f3ed; 前…

在C語言中使用UUID作為AES加密密鑰

在C語言中使用UUID作為AES加密密鑰 編譯依賴安裝示例代碼編譯和運行關鍵點說明![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/0df1f1d803cd40688f6d58a9d0e1f1d9.png)注意事項編譯依賴安裝 運行環境位centos8 Linux 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec …