python opencv把yuv格式转bgr
1、yuv格式简介
yuv格式不同于bgr。
YUV ,指的是 YCbCr,其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。
根据采样方式以及排列方式分了好多种细致的格式,常用的有yuyv422等。
https://zhuanlan.zhihu.com/p/384455058
2、yuyv422转jpg
转格式之前必须只有yuyv的长和宽,以5120960举例
ffmpeg
ffmpeg -loglevel error -y -s 5120960 -pix_fmt yuyv422 -i 4366.yuv -frames:v 1 4366.jpg
opencv
def convert_yuyv422(yuv_file, yuv_shape=(1920, 720)):h, w = yuv_shapeyuv_file = open(yuv_file, 'rb')frame_len = h * w * 2shape = (w, h, 2) # 用于yuyv2长度为w*h*2raw = yuv_file.read(int(frame_len))yuv = np.frombuffer(raw, dtype=np.uint8)yuv = yuv.reshape(shape)bgr = cv2.cvtColor(yuv, cv2.COLOR_YUV2BGR_YUYV)cv2.imwrite('cv2.jpg', bgr)
下列链接有更本质的方法,但是太慢了不推荐。
https://blog.csdn.net/qq_36917144/article/details/120505174
3、yuv bgr888编码转jpg
yuv本质上没有bgr888的格式,所以这种只是把bgr888编码的存为了yuv而已
ffmpeg
ffmpeg -s 1920x720 -pix_fmt bgr24 -i 4399.yuv -frames:v 1 4399.jpg
python
def yuvbgr888_to_bgr(yuv_file, yuv_shape=(1920, 720)):h, w = yuv_shapeyuv_file = open(yuv_file, 'rb')frame_len = h * w * 3shape = (w, h, 3) # 用于yuv转bgr,对于yuyv格式,需要2通道raw = yuv_file.read(int(frame_len))yuv = np.frombuffer(raw, dtype=np.uint8)yuv = yuv.reshape(shape)cv2.imwrite('cv2.jpg', yuv)
4、另一种实现
def yuvbgr888(yuv_file, yuv_shape=(1920, 720)):img = np.fromfile(yuv_file, dtype='uint8')h, w = yuv_shapeimg = img.reshape(w, h, 3)cv2.imwrite('cv2.jpg', img)def yuyv422_to_bgr2(yuv_file, yuv_shape=(1920, 720)):h, w = yuv_shapeshape = (w, h, 2) # 用于yuv转bgr,对于yuyv格式,需要2通道yuv = np.fromfile(yuv_file, dtype='uint8')yuv = yuv.reshape(shape)bgr = cv2.cvtColor(yuv, cv2.COLOR_YUV2BGR_YUYV)cv2.imwrite('cv2.jpg', bgr)
python opencv把yuv格式转bgr相关推荐
- python opencv图片读入格式转换
opencv中提供了图片格式转换的方法,主要是采用cv2.cvtColor函数. 方法如下: import cv2output1=cv2.imread('D:/super_reslution/SRCN ...
- Python+OpenCV视频的读取与处理;截取部分图像数据; 边界填充
视频读取 ●cv2.VideoCapture可以捕获摄像头, 用数字来控制不同的设备,例如0,1. ●如果是视频文件,直接指定好路径即可. import cv2 #opencv默认读取格式是BGR v ...
- OpenCV技巧 | 常用格式图片保存为透明背景图片(附Python源码)-教你轻松制作Logo
导读 本文主要介绍使用OpenCV将常用格式图片保存为透明背景图片的方法与实现代码. 实现目标 本文的目标有如下两个: ① 将常见格式[jpg/png/bmp]白色背景图片转换保存为透明背景图片: ② ...
- 在Python中使用OpenCV将RGB格式的图像转换为HSV格式的图像
An HSV is another type of color space in which H stands for Hue, S stands for Saturation and V stand ...
- OpenCV - 将图片转换为深度学习模型输入格式,BGR通道转RGB,图片归一化,HWC转CHW
文章目录 1 将图片转换为深度模型输入格式 1.1 自行进行转换 1.1.1 BGR通道转RGB通道 1.1.2 图片归一化 1.1.3 HWC转CHW 1.2 使用cv::dnn::blobFrom ...
- python+openCV (入门级)车道线检测 学习笔记
文章目录 前言 一.openCV安装 二.尝试使用cv2中库函数 1.读取图片 2.图片显示 3.延时/暂停 4.保存图片 5.清楚所有窗口 三.Canny边缘检测 1.高斯滤波 2.图片转换 3.边 ...
- 使用Python+OpenCV+dlib为人脸生成口罩
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google ...
- python opencv 检测特定颜色
python opencv 检测特定颜色 import cv2 import numpy as npcap = cv2.VideoCapture(0)# set blue thresh 设置HSV中蓝 ...
- 2020-11-06 Python OpenCV给证件照换底色
投简历.找工作这些事都需要证件照,有些还要求证件照背景颜色.尺寸大小,本文分享一下如果通过Python OpenCV来实现照片裁剪和更换背景色 1.读取照片 import cv2import nump ...
最新文章
- 基于WinDbg的内存泄漏分析
- 以太坊合约24小时新增2.44万ETH
- 【计算机网络笔记】物理层:概念传输媒体传输方式
- layUI日期框回调函数
- Ubuntu 18.04 LTS安装crossover类虚拟机平台
- 红黑树 RBTree
- scala 资源 copy 自知乎
- 史上最详细Oracle 10g安装教程
- HTML关闭网页弹出窗口代码
- minic 类型声明与变量定义句型处理
- 微信公众号开发-自定义菜单
- word流程图两条线的端点连接_word 2013流程图连线 word流程图连线
- Normal Map中的值, Tangent Space, 求算 Tangent 与 Binormal 与 TBN Matrix
- 微软edge如何退出登录_Microsoft Edge:评论
- DCM4CHEE-ARC-LIGHT
- 天辰的救赎(JS)第四章(组合元素)
- 解答:CPU温度多少正常?CPU温度过高怎么解决?
- Type-C快充诱电方案(PD受电)
- 四旋翼定高篇之惯导加速度+速度+位置三阶互补融合方案
- DGHV:整数上的同态加密(2)-解决噪声与构建全同态蓝图
热门文章
- 计算机显示用户文件夹,移动Win7用户文件夹(我的文档)默认位置至D盘
- 约瑟夫环--C语言解析
- 同花顺_代码解析_技术指标_L
- 讲真的,我并不看好元宇宙
- BCELoss计算原理 使用latex语法
- Java学习之类(三):构造方法和创建对象
- 自定义绘制地图(Echarts)
- 面试六十家公司的深圳体验
- linux内核驱动ldd3_《Linux设备驱动程序》编译LDD3的scull驱动问题总结***
- 计算机专业的考研大学排名,18考研:全球计算机专业排名出炉,国内3所大学入选前十!...