yuv420sp转jpg
代码功能:将yuv420sp(NV12)数据转换成jpg图片
需要注意:文件名需包含图片宽高信息,如 ‘00001_1920_1080.yuv420sp’
import os
import cv2
import numpy as np
from tqdm import tqdmdef 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)
yuv420sp转jpg相关推荐
- yuv420,yuv420p,yuv420sp,nv12,nv21,I420,YV12概念区别
yuv420有yuv420p和yuv420sp两种.如果不加特别说明,yuv420指的就是yuv420p.而yuv420p又可分为I420与YV12,yuv420sp也可分为NV12和NV21.它们的 ...
- dm8127 A8 yuv420sp 送入到videoM3编码--已经解决
NULL link->ipcFrameoutHost->ipcFramesIn(vidoeFromHost)->enclink->ipcFramesOut(videoToHos ...
- BGR转YUV420SP
YUV420SP: Y数据全部从在一块,UV数据使用interleave方式存储 YYYY YYYY //此处是BGR图像高度 UVUV 注:YUV420sp与YUV420p的数据格式它们的UV排列在 ...
- YUV420SP/YUV420P
YUV420SP: sp(semi-Planar二维平面)指的是YUV不是3个平面而是分成2个平面.Y数据一个平面,UV数据合用一个平面.UV平面的数据格式是UVUVUV... YUV420P: 42 ...
- RGBA 编码为 YUV420SP【NEON】
RGBA >> YUV420SP C/C++ 朴素实现版 void encodeYUV420SP_CPU(unsigned char *__restrict__ yuv420sp,unsi ...
- NV21 to NV12(YUV420SP)
setPreviewFormat(ImageFormat.NV21) NV21 颜色空间排列 :YYYYYYYY VUVU 在用MediaCodec编码的时候,如果设置颜色空间为YUV420SP,那么 ...
- YUV420P、YUV420SP、NV12、NV21和RGB互相转换并存储为JPEG以及PNG图片
音视频实践学习 android全平台编译ffmpeg以及x264与fdk-aac实践 ubuntu下使用nginx和nginx-rtmp-module配置直播推流服务器 android全平台编译ffm ...
- 用NEON intrinsic实现RGB转YUV420SP(NV12)
如题,现在要把RGB的格式转成YUV格式. 1. 数据的排列方式 先来看看两种数据在内存里是按什么方式排列的 1.1 RGB的排列 如图所示,1组RGB表示1个像素的颜色,每个像素依次排列.图 ...
- YUV420P,YUV420,YUV420SP区别
YUV420P,YUV420,YUV420SP 都是视频压缩格式中常用的 YUV 颜色编码方式. YUV420P 指的是 YUV 色彩空间的一种,也称为 YUV 4:2:0 planar,其中的 Y. ...
- RGB、YUV420p、YUV420sp之间的互相转换(C++)
关于RGB.YUV介绍可以参考 RGB 与YUV颜色模型及存储格式 1.covert RGB to NV21 void encodeYUV420sp(unsigned char* yuv420sp, ...
最新文章
- mahout相关笔记
- cmd html 查找汉子字,字符串查找 cmd find命令
- Core篇——初探Core的认证,授权机制
- 面向对象编程(一)——面向对象和面向过程
- define,require的基本用法
- java protobuf extend_如何使用protobuf extend和编写protobuf插件
- 【OCR技术系列之三】大批量生成文字训练集
- 微软不愿意提及的软肋:Win10的语音识别
- spring aop源码分析总结
- cenos安装erlang
- uniapp区分不同平台
- ffmpeg解码h265,并用Qt显示
- 计算机工作月度个人总结怎么写,计算机*学生个人实习工作总结范文
- DNS的集群与更新(远程更新,加密更新)
- c语言我想你,c语言土味情话
- win7虚拟计算机名,电脑高手必会技能:VMware虚拟机安装win7教程
- 内置方法和模块的应用
- Python入门到精通(4):关系与逻辑表达式
- LY-100系列的纬编机纱长监控器
- 关于pwd的含义及用法