批量转换不同宽高的YUV编码格式图片为jpg格式方法
NV12存储格式下YUV编码的图片转化成jpg格式方法
yuv文件名称的格式为:rgb_800_896_20220615193640.yuv
# -*-coding: utf-8 -*-
#@FileName : NV21yuv-rgb.py
import cv2
import numpy as np
def NV12RGB(yuv_path, width, height):
with open(yuv_path, 'rb') as f:
yuvdata = np.fromfile(f, dtype=np.uint8)
cv_format = cv2.COLOR_YUV2BGR_NV12
bgr_img = cv2.cvtColor(yuvdata.reshape((height*3//2, width)), cv_format)
return bgr_img
if __name__ == "__main__":
path = r"D:\自动化测试\YUV图片" #yuv格式图片存放路径
save_path = r"D:\LR\test" #生成jpg文件目录
from base.file_helper import FileHelper
image_yuv_list = FileHelper.find_files(file_dirOrDirlist=path, file_suffix="yuv")
id = 0
for i in image_yuv_list:
filename = i.split("\\")[-1]
print(filename)
width = int(filename.split("_")[1])
height = int(filename.split("_")[2])
img = NV12RGB(yuv_path=i, width=width, height=height)
save_path_file = save_path + "\\" + str(id)+ ".jpg"
id = id+1
print(save_path_file)
cv2.imwrite(save_path_file, img)

浙公网安备 33010602011771号