一些基本图像预处理---将一个文件中的所有图片进行尺度归一化、查看每个像素的RGB值,将指定颜色切换为白色、将文件中所有图片从png到jpg的切换

目录

1.将一个文件中的所有图片进行尺度归一化

2. 查看一张图片的每个像素的RGB值

3.将指定颜色切换成其他颜色(代码中将红色切换为白色)

 4.将一个文件中所有图片从png到jpg的切换

5.将一个文件夹中的所有图像重命名从1开始 

1.将一个文件中的所有图片进行尺度归一化

实例中,本代码是将图像全部归一为352*352,可以调整参数,也需要将文件地址切换所要处理的文件地址。

from PIL import Image
import os


def resize_images(folder_path, output_size):
    # 获取文件夹中的所有文件
    file_list = os.listdir(folder_path)

    for file_name in file_list:
        # 检查文件是否为图片文件(可根据需要修改条件)
        if file_name.endswith(('.jpg', '.jpeg', '.png')):
            file_path = os.path.join(folder_path, file_name)

            # 打开并调整图片大小
            image = Image.open(file_path)
            resized_image = image.resize(output_size)

            # 保存调整大小后的图片
            resized_image.save(file_path)

            print(f"Resized image: {file_name}")


# 指定要处理的文件夹路径和输出大小
folder_path = './TrainDate/masks'  # 替换为实际的文件夹路径
output_size = (352, 352)  # 替换为想要的输出大小

# 调用函数进行图片大小归一化
resize_images(folder_path, output_size)

2. 查看一张图片的每个像素的RGB值

from PIL import Image

def get_image_rgb_values(image_path):
    # 打开图片
    image = Image.open(image_path)

    # 将图片转换为RGB模式(忽略透明度)
    image = image.convert('RGB')

    # 获取图片的像素数据
    pixels = image.load()
    width, height = image.size

    # 遍历每个像素
    for x in range(width):
        for y in range(height):
            r, g, b = pixels[x, y]
            # 输出RGB值
            print(f"Pixel at ({x}, {y}): R={r}, G={g}, B={b}")

    # 关闭图片
    image.close()

# 指定图片路径
image_path = '1.png'

# 调用函数查看图片RGB值
get_image_rgb_values(image_path)

3.将指定颜色切换成其他颜色(代码中将红色切换为白色)

换成指定颜色需要修改 以下部分代码参数:

 # 判断是否为红色区域(阈值可根据需要进行调整)
                if r > 100 and g >100 and b <100:
                    # 将红色区域替换为白色0
                    pixels[x, y] = (255, 255, 255, a)

from PIL import Image
import os

def replace_red_with_white(folder_path):
    # 获取文件夹中的所有文件名
    filenames = os.listdir(folder_path)
    # 选取所有PNG图片文件
    image_files = [filename for filename in filenames if filename.endswith('.png')]

    # 遍历每个图片文件并进行处理
    for image_file in image_files:
        image_path = os.path.join(folder_path, image_file)
        # 打开图片
        image = Image.open(image_path)

        # 将图片转换为RGBA模式
        image = image.convert('RGBA')

        # 获取图片的像素数据
        pixels = image.load()
        width, height = image.size

        # 遍历每个像素
        for x in range(width):
            for y in range(height):
                r, g, b, a = pixels[x, y]

                # 判断是否为红色区域(阈值可根据需要进行调整)
                if r > 100 and g >100 and b <100:
                    # 将红色区域替换为白色0
                    pixels[x, y] = (255, 255, 255, a)

        # 保存修改后的图片
        new_image_path = os.path.join(folder_path, image_file)
        image.save(new_image_path)

        # 关闭图片
        image.close()

        print(f"Processed {image_file} and saved as {os.path.basename(new_image_path)}")

# 指定文件夹路径
folder_path = './TrainData/masks'

# 调用函数进行处理
replace_red_with_white(folder_path)

效果图如下所示: 

 

 4.将一个文件中所有图片从png到jpg的切换

from PIL import Image
import os

def convert_png_to_jpg(input_folder, output_folder):
    # 遍历输入文件夹中的所有文件
    for filename in os.listdir(input_folder):
        if filename.endswith(".png"):
            # 构建输入和输出文件的路径
            input_path = os.path.join(input_folder, filename)
            output_filename = os.path.splitext(filename)[0] + ".jpg"
            output_path = os.path.join(output_folder, output_filename)

            # 打开PNG图像并保存为JPG格式
            image = Image.open(input_path)
            image.convert("RGB").save(output_path, "JPEG")
            print(f"Converted {input_path} to {output_path}")

# 指定输入文件夹和输出文件夹的路径
input_folder = "input_folder"
output_folder = "output_folder"

# 调用函数进行转换
convert_png_to_jpg(input_folder, output_folder)

5.将一个文件夹中的所有图像重命名从1开始 

import os

def rename_images(folder_path):
    # 获取目标文件夹中的所有文件
    file_list = os.listdir(folder_path)
    image_extensions = ['.jpg', '.jpeg', '.png', '.gif']  # 支持的图片文件扩展名

    # 过滤出图片文件
    image_files = [file for file in file_list if os.path.splitext(file)[1].lower() in image_extensions]

    # 重命名图片文件
    for i, image_file in enumerate(image_files):
        extension = os.path.splitext(image_file)[1]
        new_name = str(i + 1) + extension
        old_path = os.path.join(folder_path, image_file)
        new_path = os.path.join(folder_path, new_name)
        os.rename(old_path, new_path)
        print(f"{image_file} 重命名为 {new_name}")

# 调用示例
folder_path = "./TrainDataset/image"
rename_images(folder_path)

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

进步小白

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

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

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

打赏作者

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

抵扣说明:

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

余额充值