yuv转bgr

举报
风吹稻花香 发表于 2021/10/15 23:25:06 2021/10/15
【摘要】 import timefrom ctypes import * import cv2 import numpy as np def yuv2bgr(file_name, height, width, start_frame): fp = open(file_name, 'rb') fp.seek(0, 2) # 设置...


  
  1. import time
  2. from ctypes import *
  3. import cv2
  4. import numpy as np
  5. def yuv2bgr(file_name, height, width, start_frame):
  6. fp = open(file_name, 'rb')
  7. fp.seek(0, 2) # 设置文件指针到文件流的尾部 + 偏移 0
  8. fp_end = fp.tell() # 获取文件尾指针位置
  9. frame_size = height * width * 3 // 2 # 一帧图像所含的像素个数
  10. num_frame = fp_end // frame_size # 计算 YUV 文件包含图像数
  11. print("This yuv file has {} frame imgs!".format(num_frame))
  12. fp.seek(frame_size * start_frame, 0) # 设置文件指针到文件流的起始位置 + 偏移 frame_size * startframe
  13. print("Extract imgs start frame is {}!".format(start_frame + 1))
  14. start=time.time()
  15. yyyy_uv = np.zeros(shape=frame_size, dtype='uint8', order='C')
  16. for j in range(frame_size):
  17. yyyy_uv[j] = ord(fp.read(1)) # 读取 YUV 数据,并转换为 unicode
  18. img = yyyy_uv.reshape((height * 3 // 2, width)).astype('uint8') # NV12 的存储格式为:YYYY UV

文章来源: blog.csdn.net,作者:AI视觉网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/120779418

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。