批量对图片处理:对图像进行色度饱和度亮度(HSV)调整

本文介绍了一种批量处理图像的方法,包括调整图像的色调、饱和度和亮度,并提供了具体的Python实现代码。通过修改参数可以轻松调整图像效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果想对图像进行批量的处理:

1.修改图像的原始地址(original_images_path)和转换后的地址(combined_images_path

2.修改函数augment_hsv形参中的对应的 hgain、 sgain、 vgain即可

 

# -*- coding: utf-8 -*-

import numpy as np
import cv2
import os
from PIL import Image


# 原始地址和转换后的地址
original_images_path = r'E:\Pychram_program\cv2\original_pic\val'
combined_images_path = r'E:\Pychram_program\cv2\change\val'


# 进行色调饱和度亮度调整
def augment_hsv(img, hgain=0.0143, sgain=0.491, vgain=0.533):
    r = np.random.uniform(-1, 1, 3) * [hgain, sgain, vgain] + 1  # random gains
    hue, sat, val = cv2.split(cv2.cvtColor(img, cv2.COLOR_BGR2HSV))
    dtype = img.dtype  # uint8

    x = np.arange(0, 256, dtype=np.int16)
    lut_hue = ((x * r[0]) % 180).astype(dtype)
    lut_sat = np.clip(x * r[1], 0, 255).astype(dtype)
    lut_val = np.clip(x * r[2], 0, 255).astype(dtype)

    img_hsv = cv2.merge((cv2.LUT(hue, lut_hue), cv2.LUT(sat, lut_sat), cv2.LUT(val, lut_val))).astype(dtype)
    cv2.cvtColor(img_hsv, cv2.COLOR_HSV2BGR, dst=img)  # no return needed


# 寻找原始地址中的图像数据
def find_images(path):
    result = []
    for filename in os.listdir(path):
        _, ext = os.path.splitext(filename.lower())
        if ext == ".jpg" or ext == ".png":
            result.append(os.path.join(path, filename))
            pass
        pass
    result.sort()
    return result


if __name__ == '__main__':
    original_images = find_images(original_images_path)

    for image_path in original_images:

        img_name = image_path[len(original_images_path):]
        original = Image.open(image_path)
        original_img = cv2.imread(image_path)
        change_img = cv2.resize(original_img, (640, 640))
        augment_hsv(change_img)
        cv2.imwrite(combined_images_path + img_name, change_img)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jay_Mapp

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

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

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

打赏作者

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

抵扣说明:

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

余额充值