我是靠谱客的博主 俊秀蛋挞,最近开发中收集的这篇文章主要介绍python解析yuv图像,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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图像所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部