使用Python-OpenCV将图片批量转换为jpg格式

10 篇文章 2 订阅

Ubuntu Tips设置快捷键开启新的文件夹窗口

1.配置环境

平台:Ubuntu 20.04

2.代码:

# author:Hurricane
# date: 2021/7/16
# E-mail:hurri_cane@qq.com

import os, random, shutil
import cv2 as cv
from tqdm import tqdm

def Resize_img(fileDir, tarDir):
    # print(os.path.exists(tarDir))
    # if not os.path.exists(tarDir) or os.path.exists(fileDir):  # 如果目标文件夹的子文件夹不存在,就在目标文件夹中建立子文件夹
    #     print("Dir Error!")
    #     return
    pathDir = os.listdir(fileDir)
    filenumber = len(pathDir)  # 计算文件总数
    print("Totle img",filenumber)
    for name in tqdm(pathDir):
        n,suffix = name.split(".")
        if not os.path.exists(tarDir):  # 如果目标文件夹的子文件夹不存在,就在目标文件夹中建立子文件夹
            os.mkdir(tarDir)
        img_path = os.path.join(fileDir, name)
        save_path = os.path.join(tarDir, n+".jpg")
        img = cv.imread(img_path)
        cv.imwrite(save_path,img)
    cv.destroyAllWindows()


if __name__ == '__main__':
    fileDir = r"/home/sha/Data_Set/data_KIITI_car_part/images"  # 源图片文件夹路径
    tarDir = r"/media/sha/Disk_1/Data_Set/Data_KIITI_car_part/org_data/data_KIITI/imgages_jpg"
    Resize_img(fileDir, tarDir)
    print("Extract Successfully!")

3.使用方法

if __name__ == '__main__':

下面的两个路径需要修改为自己文件夹的路径
其中fileDir为目前存放图片文件的文件夹;tarDir为转换后图片存放的文件夹

当然,如果你想将图片批量转换为其他格式。如“png”,那么你可以在代码中第22行中".jpg"改为.png

4.结束语

如果本文对你有帮助的话还请点赞、收藏一键带走哦,你的支持是我最大的动力!(づ。◕ᴗᴗ◕。)づ
在这里插入图片描述

### 回答1: 你可以使用Python的图像处理库Pillow来实现YUV格式图片到JPEG格式图片转换。你可以参考下面的代码: from PIL import Image # Open YUV image im = Image.open('image.yuv') # Convert to RGB rgb_im = im.convert('RGB') # Save as JPEG rgb_im.save('image.jpeg') ### 回答2: 使用Python批量将YUV格式转换为JPEG格式可以通过以下步骤实现: 1. 导入所需的Python库,如OpenCV和NumPy。 ```python import cv2 import numpy as np ``` 2. 定义一个函数来批量转换YUV文件为JPEG文件。 ```python def yuv_to_jpeg(yuv_path, jpeg_path): # 从YUV文件中读取数据 with open(yuv_path, 'rb') as file: yuv_data = file.read() # 获取Y、U和V分量的数据 y_size = resolution.width * resolution.height u_size = int(y_size / 4) v_size = int(y_size / 4) y_data = np.frombuffer(yuv_data, dtype=np.uint8, count=y_size) u_data = np.frombuffer(yuv_data[y_size:], dtype=np.uint8, count=u_size) v_data = np.frombuffer(yuv_data[y_size + u_size:], dtype=np.uint8, count=v_size) # 重新排列U和V分量的数据 u_data = u_data.repeat(2) v_data = v_data.repeat(2) # 将YUV数据转换为RGB数据 yuv_image = np.stack((y_data, u_data, v_data), axis=-1) rgb_image = cv2.cvtColor(yuv_image, cv2.COLOR_YUV2RGB_I420) # 将RGB数据保存为JPEG文件 cv2.imwrite(jpeg_path, rgb_image) ``` 3. 遍历YUV文件目录,并调用该函数批量转换YUV文件。 ```python import os yuv_directory = 'path_to_yuv_directory' jpeg_directory = 'path_to_jpeg_directory' for filename in os.listdir(yuv_directory): if filename.endswith('.yuv'): yuv_path = os.path.join(yuv_directory, filename) jpeg_filename = os.path.splitext(filename)[0] + '.jpg' jpeg_path = os.path.join(jpeg_directory, jpeg_filename) yuv_to_jpeg(yuv_path, jpeg_path) ``` 以上是使用Python批量将YUV格式转换为JPEG格式的简单示例。需要根据实际情况进行适当的修改和调整。 ### 回答3: 使用Python将YUV图像批量转换为JPEG格式,可以按照以下步骤进行: 1. 导入所需的Python模块:我建议使用OpenCV库,因为它提供了处理图像的强大功能。要安装OpenCV,可以使用pip命令:``` pip install opencv-python``` 2. 创建一个函数来批量转换YUV图像为JPEG格式: ```python import cv2 import os def yuv_to_jpeg(yuv_folder, jpeg_folder): yuv_files = os.listdir(yuv_folder) for yuv_file in yuv_files: if yuv_file.endswith('.yuv'): yuv_path = os.path.join(yuv_folder, yuv_file) jpeg_path = os.path.join(jpeg_folder, os.path.splitext(yuv_file)[0] + '.jpeg') # 读取YUV图像 yuv_image = cv2.imread(yuv_path, cv2.IMREAD_GRAYSCALE) # 将YUV图像转换为RGB图像 rgb_image = cv2.cvtColor(yuv_image, cv2.COLOR_YUV2RGB_I420) # 将RGB图像保存为JPEG格式 cv2.imwrite(jpeg_path, rgb_image) ``` 3. 调用函数并传入YUV图像文件夹路径和JPEG图像保存路径: ```python yuv_to_jpeg('yuv_folder_path', 'jpeg_folder_path')``` 注意:以上代码假设YUV图像是以.I420格式存储的。如果你的YUV图像格式不同,你需要调整代码中的`cv2.COLOR_YUV2RGB_I420`参数以适应你的YUV格式。 以上就是使用Python批量将YUV图像转换为JPEG格式的简单方法。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hurri_cane

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值