代码功能:将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相关推荐

  1. yuv420,yuv420p,yuv420sp,nv12,nv21,I420,YV12概念区别

    yuv420有yuv420p和yuv420sp两种.如果不加特别说明,yuv420指的就是yuv420p.而yuv420p又可分为I420与YV12,yuv420sp也可分为NV12和NV21.它们的 ...

  2. dm8127 A8 yuv420sp 送入到videoM3编码--已经解决

    NULL link->ipcFrameoutHost->ipcFramesIn(vidoeFromHost)->enclink->ipcFramesOut(videoToHos ...

  3. BGR转YUV420SP

    YUV420SP: Y数据全部从在一块,UV数据使用interleave方式存储 YYYY YYYY //此处是BGR图像高度 UVUV 注:YUV420sp与YUV420p的数据格式它们的UV排列在 ...

  4. YUV420SP/YUV420P

    YUV420SP: sp(semi-Planar二维平面)指的是YUV不是3个平面而是分成2个平面.Y数据一个平面,UV数据合用一个平面.UV平面的数据格式是UVUVUV... YUV420P: 42 ...

  5. RGBA 编码为 YUV420SP【NEON】

    RGBA >> YUV420SP C/C++ 朴素实现版 void encodeYUV420SP_CPU(unsigned char *__restrict__ yuv420sp,unsi ...

  6. NV21 to NV12(YUV420SP)

    setPreviewFormat(ImageFormat.NV21) NV21 颜色空间排列 :YYYYYYYY VUVU 在用MediaCodec编码的时候,如果设置颜色空间为YUV420SP,那么 ...

  7. YUV420P、YUV420SP、NV12、NV21和RGB互相转换并存储为JPEG以及PNG图片

    音视频实践学习 android全平台编译ffmpeg以及x264与fdk-aac实践 ubuntu下使用nginx和nginx-rtmp-module配置直播推流服务器 android全平台编译ffm ...

  8. 用NEON intrinsic实现RGB转YUV420SP(NV12)

    如题,现在要把RGB的格式转成YUV格式. 1. 数据的排列方式   先来看看两种数据在内存里是按什么方式排列的 1.1 RGB的排列   如图所示,1组RGB表示1个像素的颜色,每个像素依次排列.图 ...

  9. YUV420P,YUV420,YUV420SP区别

    YUV420P,YUV420,YUV420SP 都是视频压缩格式中常用的 YUV 颜色编码方式. YUV420P 指的是 YUV 色彩空间的一种,也称为 YUV 4:2:0 planar,其中的 Y. ...

  10. RGB、YUV420p、YUV420sp之间的互相转换(C++)

    关于RGB.YUV介绍可以参考 RGB 与YUV颜色模型及存储格式 1.covert RGB to NV21 void encodeYUV420sp(unsigned char* yuv420sp, ...

最新文章

  1. mahout相关笔记
  2. cmd html 查找汉子字,字符串查找 cmd find命令
  3. Core篇——初探Core的认证,授权机制
  4. 面向对象编程(一)——面向对象和面向过程
  5. define,require的基本用法
  6. java protobuf extend_如何使用protobuf extend和编写protobuf插件
  7. 【OCR技术系列之三】大批量生成文字训练集
  8. 微软不愿意提及的软肋:Win10的语音识别
  9. spring aop源码分析总结
  10. cenos安装erlang
  11. uniapp区分不同平台
  12. ffmpeg解码h265,并用Qt显示
  13. 计算机工作月度个人总结怎么写,计算机*学生个人实习工作总结范文
  14. DNS的集群与更新(远程更新,加密更新)
  15. c语言我想你,c语言土味情话
  16. win7虚拟计算机名,电脑高手必会技能:VMware虚拟机安装win7教程
  17. 内置方法和模块的应用
  18. Python入门到精通(4):关系与逻辑表达式
  19. LY-100系列的纬编机纱长监控器
  20. 关于pwd的含义及用法

热门文章

  1. 带你快速了解ISO27001信息安全管理体系认证
  2. 海量数据搜索---搜索引擎的实现
  3. FastDFS配置文件
  4. 华为mate7 刷机出现android,华为Mate7怎么刷机 华为Mate7刷机教程【步骤详解】
  5. C#: PDF转图片(ghostscript)
  6. 筹备酒吧之路——音响篇
  7. SIM900A GPRS无线通信
  8. java抽签_java  抽签程序  【滚动抽签】
  9. linux安装7z命令,Linux 下安装 7zip 及使用
  10. 易语言c盘搜索文件,易语言遍历搜索目录指定文件