当前位置: 首页 > news >正文

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

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

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

代码如下

import os,shutil
from PIL import Image, ImageEnhancedef 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)

相关文章:

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

在目标检测任务中,数据集的质量直接影响到模型的性能。数据增强作为提升数据集多样性和模型泛化能力的常用手段,在图像处理过程中扮演着重要角色。锐化(Sharpening)技术是常见的图像增强方法之一,能够突出图像中的细节…...

滚雪球学Redis[6.4讲]:Redis消息队列:构建高效的消息通信与任务调度系统

全文目录: 🎉前言🚦Redis消息队列的使用场景🐳1. 异步任务处理🐋2. 任务调度🐬3. 模块解耦 ⚙️实现发布/订阅模型🐟️1. 发布者发布消息🐠2. 订阅者订阅频道🐡3. 实际应…...

《计算机视觉》—— 换脸

效果如下: 完整代码: import cv2 import dlib import numpy as npJAW_POINTS list(range(0, 17)) RIGHT_BROW_POINTS list(range(17, 22)) LEFT_BROW_POINTS list(range(22, 27)) NOSE_POINTS list(range(27, 35)) RIGHT_EYE_POINTS list(range(36…...

【JavaEE初阶】深入透析文件-IO关于文件内容的操作(四种文件流)

前言 🌟🌟本期讲解关于CAS的补充和JUC中有用的类,这里涉及到高频面试题哦~~~ 🌈上期博客在这里:【JavaEE初阶】文件-IO之实现文件系统的操作如何进行实现-CSDN博客 🌈感兴趣的小伙伴看一看小编主页&…...

复习:react 中的 refs,怎么使用,有哪些使用场景

在 React 中,refs(引用)是一个重要的特性,它允许开发者直接访问 DOM 元素或者 React 组件的实例。以下是对 React 中 refs 的使用及其使用场景的详细解释: 一、refs 的使用方法 字符串引用 在早期的 React 版本中,可以通过字符串来设置 ref。然而,这种方法已经被废弃,…...

Python OpenCV精讲系列 - 目标检测与识别深入理解(二十)

💖💖⚡️⚡️专栏:Python OpenCV精讲⚡️⚡️💖💖 本专栏聚焦于Python结合OpenCV库进行计算机视觉开发的专业教程。通过系统化的课程设计,从基础概念入手,逐步深入到图像处理、特征检测、物体识…...

golang中的上下文

背景 在Go语言中,使用context包来管理跨API和进程间的请求生命周期是常见的做法。特别是在涉及到并发编程时,如启动协程(goroutine)来处理异步任务,正确地传递和监听context变得尤为重要。比如,在gin框架中…...

Navigation2 算法流程

转自 https://zhuanlan.zhihu.com/p/405670882 此文仅作学习笔记 启动流程 在仿真环境中启动导航包的示例程序,执行nav2_bringup/bringup/launch/tb3_simulation_launch.py文件。ROS2的launch文件支持采用python语言来编写以支持更加复杂的功能,本文件…...

OpenAI swarm+ Ollama快速构建本地多智能体服务 - 1. 服务构建教程

OpenAI开源了多智能体编排的工程swarm,今天介绍一下swarm与OLLAMA如何结合使用的教程,在本地构建自己的多智能体服务,并给大家实践演示几个案例。 安装步骤 安装ollama,在官网下载对应操作系统的版本即可,下载后用ol…...

HTB:Wifinetic[WriteUP]

目录 连接至HTB并启动靶机 1.What is the name of the OpenWRT backup file accessible over FTP? 使用nmap对靶机21、22端口进行脚本、服务信息扫描 2.Whats the WiFi password for SSID OpenWRT? 3.Which user reused the WiFi password on thier local account? 4.…...

专业学习|马尔可夫链(概念、变体以及例题)

一、马尔可夫链的概念及组成 (一)学习资料分享 来源:024-一张图,但讲懂马尔可夫决策过程_哔哩哔哩_bilibili 马尔可夫链提供了一种建模随机过程的方法,具有广泛的应用。在实际问题中,通过转移概率矩阵及初…...

RK3576 安卓SDK编译环境搭建

编译 Android14 对机器的配置要求较高: 建议预留500G存储 多分配CPU和内存 建议使用 Ubuntu 20.04 操作系统或更高版本 sudo apt-get updatesudo apt-get install make gcc sudo apt-get install g++ patchelf gawk texinfo chrpath diffstat binfmt-support sudo apt-get …...

Renesas R7FA8D1BH (Cortex®-M85) 上光电编码器测速功能

目录 概述 1 软硬件 1.1 软硬件环境信息 1.2 开发板信息 1.3 调试器信息 2 硬件架构 2.1 硬件框架结构 2.2 测速功能原理介绍 2.2.1 理论描述 2.2.2 实现原理 2.2.3 系统硬件结构 3 软件实现 3.1 FSP配置项目 3.2 代码实现 3.2.1 初始化函数 3.2.2 功能函数 3.…...

软件测试学习笔记丨Linux三剑客-sed

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32521 一、简介 sed(Stream editor)是一个功能强大的文本流编辑器,主要用于对文本进行处理和转换。它适用于自动化处理大量的文本数据,能够支持…...

Vue脚手架学习 vue脚手架配置代理、插槽、Vuex使用、路由、ElementUi插件库的使用

目录 1.vue脚手架配置代理 1.1 方法一 1.2 方法二 2.插槽 2.1 默认插槽 2.2 具名插槽 2.3 作用域插槽 3.Vuex 3.1 概念 3.2 何时使用? 3.3 搭建vuex环境 3.4 基本使用 3.5 getters的使用 3.6 四个map方法的使用 3.6.1 mapState方法 3.6.2 mapGetter…...

使用yml文件安装环境时,如何添加conda和pip的镜像源

博客参考 添加conda镜像源 name: NAME channels:- conda-forge- pytorch- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2- defaults depende…...

c语言经典100例

1.字符串转为数字 #include <stdio.h>int strToInt(char *s) {int num0;int sign1;int step1;if (*s -){sign -1;s;}while (*s > 0&&*s < 9){num num*10(*s-0);step 10;s;}return num*sign; }int main() {char a[10] "-1234";char *s a ;pr…...

百易云资产管理运营系统 ufile.api.php SQL注入漏洞复现

0x01 产品描述&#xff1a; 百易云资产管理运营系统&#xff0c;是专门针对企业不动产资产管理和运营需求而设计的一套综合解决方案。该系统能够覆盖资产的全生命周期管理&#xff0c;包括资产的登记、盘点、评估、处置等多个环节&#xff0c;同时提供强大的运营分析功能&#…...

【分布式微服务云原生】《Redis RedLock 算法全解析:应对时钟漂移与网络分区挑战》

《Redis RedLock 算法全解析&#xff1a;应对时钟漂移与网络分区挑战》 摘要&#xff1a; 本文深入探讨 Redis 的 RedLock 算法&#xff0c;详细阐述其步骤及工作原理&#xff0c;同时重点分析该算法如何处理时钟漂移和网络分区这两个常见的分布式系统问题。读者将通过本文深入…...

OceanBase 的写盘与传统数据库有什么不同?

背景 在数据库开发过程中&#xff0c;“写盘”是一项核心操作&#xff0c;即将内存中暂存的数据安全地转储到磁盘上。在诸如MySQL这样的传统数据库管理系统中&#xff0c;写盘主要有以下几步&#xff1a;首先将数据写入缓存池&#xff1b;其次&#xff0c;为了确保数据的完整性…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...