目标检测数据集图片及标签同步锐化

在目标检测任务中,数据集的质量直接影响到模型的性能。数据增强作为提升数据集多样性和模型泛化能力的常用手段,在图像处理过程中扮演着重要角色。锐化(Sharpening)技术是常见的图像增强方法之一,能够突出图像中的细节特征,使模型在处理边缘、纹理等细节时表现更好。然而,单纯对图像进行锐化处理并不充分,特别是在目标检测任务中,图像的锐化还需与标签(标注框)的同步处理相结合,以保证增强后的图像与其对应的标注信息保持一致性。

本篇文章将介绍如何对目标检测数据集中的图片进行锐化处理,并同步调整相应的标签文件,确保在数据增强的同时,图像与标签信息的精确对应。

代码如下

python 复制代码
import os,shutil
from PIL import Image, ImageEnhance


def write_xml(folder_path,output_folder, new_suffix):
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)
    # 遍历文件夹中的所有文件
    for filename in os.listdir(folder_path):
        # 获取文件的扩展名
        file_base_name, file_extension = os.path.splitext(filename)
        # 构造新的文件名
        new_filename = f"{file_base_name}{new_suffix}{file_extension}"
        # 获取完整的原文件路径和新文件路径
        old_file_path = os.path.join(folder_path, filename)
        new_file_path = os.path.join(output_folder, new_filename)
        # 复制或重命名文件
        shutil.copy(old_file_path, new_file_path)

# 调整对比度
def adjust_contrast(image, factor):
    enhancer = ImageEnhance.Contrast(image)
    adjusted_image = enhancer.enhance(factor)
    return adjusted_image

# 调整锐度
def adjust_sharpness(image, factor):
    enhancer = ImageEnhance.Sharpness(image)
    adjusted_image = enhancer.enhance(factor)
    return adjusted_image

# 批量处理文件夹中的图片
def process_images(input_folder, output_folder, sharpness_factor, new_suffix):
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    for filename in os.listdir(input_folder):
        if filename.endswith(('.jpg', '.jpeg', '.png', '.bmp', '.tif')):
            image_path = os.path.join(input_folder, filename)
            image = Image.open(image_path)
            # 调整锐度
            image_with_adjusted_sharpness = adjust_sharpness(image, sharpness_factor)
            file_base_name, file_extension = os.path.splitext(filename)
            new_filename = f"{file_base_name}{new_suffix}{file_extension}"
            # 保存到输出文件夹
            output_path = os.path.join(output_folder, new_filename)
            image_with_adjusted_sharpness.save(output_path)
            print(f"Processed and saved: {output_path}")

# 输入文件夹和输出文件夹路径
input_folder_jpg = r'E:\peanut_data\jj'  #输入图片文件夹
input_folder_xml = r'E:\peanut_data\xx'  #输入标签文件夹
output_folder_jpg = r'E:\peanut_data\jj-'  #输出图片文件夹
output_folder_xml = r'E:\peanut_data\xx-'  #输出标签文件夹
new_suffix = '_r'
# 调整参数
sharpness_factor = 4.0  #锐度因子

# 执行批量处理
process_images(input_folder_jpg, output_folder_jpg, sharpness_factor,new_suffix)
write_xml(input_folder_xml,output_folder_xml, new_suffix)
相关推荐
零壹AI实验室6 分钟前
用AI 10分钟搭建一个监控系统:Prometheus + Grafana 实战
人工智能·grafana·prometheus
志栋智能7 分钟前
超自动化巡检:量化运维成效的标尺
运维·网络·人工智能·自动化
AI科技星8 分钟前
紫金山天文台与6G 超导太赫兹实验对比【乖乖数学】
人工智能·线性代数·机器学习·量子计算·agi
摩尔线程9 分钟前
摩尔线程携手紫光计算机发布《语音识别全栈国产化技术实践白皮书》
人工智能·语音识别·摩尔线程
字节跳动开源10 分钟前
局中局!给 Agent 装上 OpenViking,它们竟然学会了“记仇”和“伪装”?
人工智能·开源·llm
Exploring12 分钟前
通过 Vibe Coding,我开发的第一款鸿蒙 App 上架了,欢迎大家下载体验
人工智能
杀生丸学AI16 分钟前
【VALSE 2026】AI领域年度重要进展
人工智能
沪漂阿龙24 分钟前
面试题:文本表示方法详解——One-hot、Word2Vec、上下文表示、BERT词向量全解析(NLP基础高频考点)
人工智能·神经网络·自然语言处理·bert·word2vec
Luminbox紫创测控28 分钟前
氙灯太阳光模拟器加速老化测试
人工智能·测试工具·测试标准
沪漂阿龙28 分钟前
面试题详解:NLP基础概念与任务——一文吃透自然语言处理、Tokenization、文本分类、文本摘要、信息抽取与大模型应用
人工智能·自然语言处理·分类