概述
python解析yuv图像
代码结构1 如下:
import os
import shutil
import numpy as np
import cv2
def read_images(input_path, img_height=480, img_width=640):
"""
解析yuv图像
"""
images_path = os.path.join(input_path, "Images")
output_path = os.path.join(input_path, "Images_bgr")
if not os.path.exists(output_path):
os.makedirs(output_path)
else:
shutil.rmtree(output_path)
os.makedirs(output_path)
yuv_images = os.listdir(images_path)
for yuv_img in yuv_images:
if yuv_img.endswith("yuv"):
print(yuv_img)
img_name = yuv_img.split(".")[0]
yuv_frame = np.fromfile(os.path.join(images_path, yuv_img), dtype=np.uint8)
yuv_frame = yuv_frame.reshape(img_height * 3 // 2, img_width)
img_bgr = cv2.cvtColor(yuv_frame, cv2.COLOR_YUV2BGR_NV21)
cv2.imwrite(os.path.join(output_path, img_name + ".jpg"), img_bgr)
if __name__ == "__main__":
data_path = r"path/to/data"
read_images(data_path)
yuv图像存储在 path/to/data/Images 下面, 并且yuv图形以“.yuv”结尾命名
代码结构2 如下:
import os
import shutil
import numpy as np
import cv2
def read_images(input_path, img_height=480, img_width=640):
"""
解析yuv图像
"""
images_path = input_path
base_dir = os.path.dirname(input_path)
output_path = os.path.join(base_dir, "Images_bgr")
if not os.path.exists(output_path):
os.makedirs(output_path)
else:
shutil.rmtree(output_path)
os.makedirs(output_path)
yuv_images = os.listdir(images_path)
for yuv_img in yuv_images:
img_name = yuv_img.split(".")[0]
yuv_frame = np.fromfile(os.path.join(images_path, yuv_img), dtype=np.uint8)
yuv_frame = yuv_frame.reshape(img_height * 3 // 2, img_width)
img_bgr = cv2.cvtColor(yuv_frame, cv2.COLOR_YUV2BGR_NV21)
cv2.imwrite(os.path.join(output_path, img_name + ".jpg"), img_bgr)
if __name__ == "__main__":
data_path = r"path/to/data/image"
read_images(data_path)
yuv图像存储在 path/to/data/image 下面, 请确保该文件夹下只有yuv文件
最后
以上就是俊秀蛋挞为你收集整理的python解析yuv图像的全部内容,希望文章能够帮你解决python解析yuv图像所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复