当前位置:网站首页>yuv420sp转jpg
yuv420sp转jpg
2022-08-04 08:34:00 【鲁破特之泪】
代码功能:将yuv420sp(NV12)数据转换成jpg图片
需要注意:文件名需包含图片宽高信息,如 ‘00001_1920_1080.yuv420sp’
import os
import cv2
import numpy as np
from tqdm import tqdm
def yuv420sp2bgr(path, w, h):
yuv = np.zeros((h, w, 3), dtype=np.uint8)
u = np.zeros((int(h / 2), int(w / 2)), dtype=np.uint8)
v = np.zeros((int(h / 2), int(w / 2)), dtype=np.uint8)
with open(path, 'rb') as f:
for row in range(h):
for col in range(w):
yuv[row, col, 0] = int(f.read(1).hex(), 16)
for row in range(int(h / 2)):
for col in range(int(w / 2)):
u[row, col] = int(f.read(1).hex(), 16)
v[row, col] = int(f.read(1).hex(), 16)
yuv[:, :, 1] = cv2.resize(u, (w, h))
yuv[:, :, 2] = cv2.resize(v, (w, h))
bgr = cv2.cvtColor(yuv, cv2.COLOR_YUV2BGR)
return bgr
# yuv420sp文件名需包含图片宽高信息,如 '00001_1920_1080.yuv420sp'
# yuv420sp文件是yuv420图像存储格式的数据位: yyyyyy...uvuv..
path_yuv420sp = r'/media/fang/3441-913C/tsr/img' # yuv420sp文件路径
path_output = path_yuv420sp # jpg图片输出路径,不要有中文
for root, dirs, files in os.walk(path_yuv420sp):
for file in tqdm(files):
if file.split(".")[-1] == 'yuv420sp':
w, h = int(file.split(".")[0].split('_')[-2]), int(file.split(".")[0].split('_')[-1])
bgr = yuv420sp2bgr(root + '/' + file, w, h)
cv2.imwrite(path_output + '/' + file.replace('yuv420sp', 'jpg'), bgr)
边栏推荐
- Libpq 是否支持读写分离配置
- 大家好,请教一个问题啊,我们通过flinkcdc把Oracle数据同步到doris,目前的问题是,只
- 在安装GBase 8c数据库的时候,报错显示“Host ips belong to different cluster”。这是为什么呢?有什么解决办法?
- ShowMeAI —— Show u 三连
- Occupy, fill in later
- 【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解
- ShuffleNet v2网络结构复现(Pytorch版)
- Typora颜色公式代码大全
- 如何从PG导入数据到kingbaseES
- [NOI Simulation Competition] Paper Tiger Game (Game Theory SG Function, Long Chain Division)
猜你喜欢

ShuffleNet v2网络结构复现(Pytorch版)

leetcode 22.8.1 二进制加法

form表单提交到数据库储存

【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解

【Attention】Dual Attention(DANet) & Fully Attention(FLA)

ShuffleNet v2 network structure reproduction (Pytorch version)

Thread类的基本使用。

线程安全问题
![[NOI Simulation Competition] Paper Tiger Game (Game Theory SG Function, Long Chain Division)](/img/b7/21f82453576b81e64dafbc3975125f.png)
[NOI Simulation Competition] Paper Tiger Game (Game Theory SG Function, Long Chain Division)

微信消息从发送到接收,经历了什么?如何防止丢包
随机推荐
技术实现 | 图像检索及其在淘宝的应用
DWB主题事实及ST数据应用层构建,220803,,
sql在字段重复时 对某个字段根据最新时间取数
【STM32】STM32F103系列名称与封装、内存
图的基本概念
【CNN基础】转置卷积学习笔记
【NOI模拟赛】纸老虎博弈(博弈论SG函数,长链剖分)
csdn图片去水印 | 其他方法无效时的解决方案
为什么手动启动GBase 8c数据库中GTM节点,起不来。显示“Run cmd failed:scp: /tmp/gtm_gtm1.server: Permission denied”
金仓数据库KingbaseES客户端编程接口指南-JDBC(6. JDBC 大对象数据处理)
GBase 8c中怎么查询数据库配置参数,例如datestyle。使用什么函数或者语法呢?
并查集介绍和基于并查集解决问题——LeetCode 952 按公因数计算最大组件大小
【UE虚幻引擎】UE5实现动态导航样条线绘制
秒懂大模型 | 3步搞定AI写摘要
通过GBase 8c Platform安装数据库集群时报错
大家好,请教一个问题啊,我们通过flinkcdc把Oracle数据同步到doris,目前的问题是,只
怎么写专利更容易通过?
递归思想
设计信息录入界面,完成人员基本信息的录入工作,
金仓数据库KingbaseES客户端编程接口指南-JDBC(7. JDBC事务处理)