自定义图像增强工具包

news/2024/7/21 7:28:46 标签: 计算机视觉, 图像增强, 图像处理

文章目录

  • 前言
  • 使用方法
    • 文件夹结构
    • 运行
  • 可用功能

前言

每次都得按照新的图像创建图像增强代码,显得太麻烦了。于是自己写了这样一个包。开源地址:GitHub地址

使用方法

其实在REAMDE里面已经写得很清楚了。主要还是因为在Windows里面路径跟编码的问题没解决,所以还是推荐直接用执行源码的方式。这里也以执行源码的方式给出使用方法。

文件夹结构

执行之前,我们先组织一下文件夹的结构。我们假设你自己的数据集文件夹叫your_dataset_dir,文件夹的内容应该是:

your_dataset_dir/
|
|- images/ # 图片所在目录
|  |- image1.jpg
|  |- ...
|- labels/ # 标签所在目录
|  |- label1.txt
|  |- ...
|- output/ # 输出目录
|  |- images/ # 输出图片所在目录(空文件夹)
|  |- labels/ # 输出标签所在目录(空文件夹)
|- my.yaml(或者default.yaml) # 源码中的必要文件
|- dataloader.py # 源码中的必要文件
|- reinforce.py # 源码中的必要文件

可以看到实际有用的其实就三个家伙,剩下的都是为了包装为pip包才放的(捂脸

其中,my.yaml最好是default.yaml的副本。如果你不想麻烦的话,直接修改default.yaml也没关系。

运行

然后,我们创建一个文件,可以叫做my-runner.py,也可以是my-runner.ipynb,怎么顺眼怎么来就行。

文件中需要写入以下内容:

import dataloader
"""
dataloader.DataLoader所有的参数都有默认值。
如果你保持`default.yaml`文件,那么你可以直接使用`myloader = dataloader.DataLoader()`。
如果你想要修改参数,你可以直接传入`myloader = dataloader.DataLoader(yaml_path = "my.yaml")`。
"""
myloader = dataloader.DataLoader(yaml_path = "my.yaml")
myloader.run_epochs()

执行就行了。点击运行按钮,或者执行python my-runner.py,都可以,怎么顺利怎么来。

当然,有些眼睛很尖的人已经发现这些内容就是dataloader.py文件的main函数内容了。所以如果你是直接修改default.yaml的话,可以直接执行python dataloader.py,就不需要额外创建文件了。

可用功能

目前功能还有限,比如:

  • 对图片进行旋转
    • 90度
    • 180度
    • 270度
  • 对图像进行翻转
    • 水平翻转
    • 垂直翻转
  • 对图像进行组合
    • 随机抽取图片
    • 组合为 n × n n{\times}n n×n的正方形图片
    • 可以指定 n n n的大小
  • 对组合的图像进行增强
    • 增加高斯噪声
    • 修改图片亮度
  • 参数可配置
    • 使用yaml文件参数配置参数
    • 通过创建对象的时候传值进行初始化

目前只能针对图内有框的场景,一张图片本身全部都是一个标签的,类似数字水印等情况暂时还不适用。


http://www.niftyadmin.cn/n/5451753.html

相关文章

一文看懂算法交易(二)

国内T0算法哪家强?算法交易费用是多少?算法交易哪些平台好? 我们接上文今天给大家继续分享,我们昨天大致了解了什么是算法交易,国内的算法总线大概有些啥,算法交易的类型。那么我们今天再普及下&#xff0c…

【力扣】392.判断子序列

题目描述 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子…

RAG高阶技巧---窗口上下文检索

RAG(Retrieval-Augmented Generation)模型的检索流程主要包括以下步骤: 加载文档:此步骤涉及将不同格式的文件转化为可处理的文档形式,例如将PDF文件转换为文本,或将表格数据转化为键值对。拆分文档&#…

园艺展示3D可视化:打造你的绿色梦想空间

在繁忙的都市生活中,我们渴望拥有一片属于自己的绿色天地,但受限于空间、时间等因素,许多人只能将这个梦想埋藏在心底。随着科技的不断发展,3D可视化技术应运而生,让绿色梦想变得触手可及。 园艺展示三维模型通过先进的…

MQ消息队列从入门到精通速成

文章目录 1.初识MQ1.1.同步和异步通讯1.1.1.同步通讯1.1.2.异步通讯 1.2.技术对比: 2.快速入门2.1.安装RabbitMQ2.2.RabbitMQ消息模型2.3.导入Demo工程2.4.入门案例2.4.1.publisher实现2.4.2.consumer实现 2.5.总结 3.SpringAMQP3.1.Basic Queue 简单队列模型3.1.1.…

KMP算法理解

最长公共前后缀 就是在前后缀中取最大的相同缀。比如对于字符串"abab",其前缀有a、ab、aba,后缀有b、ab、bab,显然最长公共前后缀就是ab 构建next next[i]储存了在以i为开头的后缀,和以j为结尾的前缀匹配时&#xff…

C语言编程练习题:第一期

练习题1&#xff1a; 编写一个程序&#xff0c;计算并输出两个整数之和。 #include <stdio.h>int main() {int num1, num2;printf("Enter two integers: ");scanf("%d %d", &num1, &num2);int sum num1 num2;printf("The sum of %d…

前端学习-CSS基础-Day1

一、CSS简介 1.1HTML局限性 只关注内容的语义&#xff0c;可以做简单的样式但是很臃肿且繁琐 1.2CSS优势 CSS层叠样式表&#xff0c;标记语言 设置HTML页面中的文本内容&#xff0c;图片外形&#xff0c;可以美化HTML&#xff0c;让页面布局更美观 HTML做框架&#xff0c;CSS做…