计算机视觉下的数据增强代码实现

数据增强的实现
使用经典的pytorch框架下的torchvision.transformers对计算机视觉进行增强的代码实现。
使用下面的图像进行数据增强,相应的效果图如下所示!
战斗机导包

import os
import PIL.Image as Image
from torchvision import transforms as transforms
import torchvision.transforms.functional as TF

2.1中心裁剪

代码

# torchvision实现中心裁剪# 取出图像,使用PIL格式
def read_PIL(image_path):image = Image.open(image_path)return image
# 中心裁剪
def center_crop(image):CenterCrop = transforms.CenterCrop(size=(1000,900))cropped_image = CenterCrop(image)return cropped_image
im = read_PIL(r'./data/airplane.jpg')
print(im.size)
output_image_dir = r'./data/result'
os.makedirs(output_image_dir,exist_ok=True)
#中心裁剪
center_cropped_image = center_crop(im)
center_cropped_image.save(os.path.join(output_image_dir,'center_cropped_image.jpg'))

中心裁剪后的图像
在这里插入图片描述

2.2随机裁剪

def random_crop(image):RandomCrop = transforms.RandomCrop(size=(1000,900))random_image = RandomCrop(image)return random_image
#随机裁剪
random_cropped_image = random_crop(im)
random_cropped_image.save(os.path.join(output_image_dir,'random_cropped_image.jpg'))

在这里插入图片描述

2.3缩放

def resize_crop(image):ResizeCrop = transforms.Resize(size=(150,200))resize_image = ResizeCrop(image)return resize_image
#缩放
resize_cropped_image = resize_crop(im)
resize_cropped_image.save(os.path.join(output_image_dir,'resize_cropped_image.jpg'))

在这里插入图片描述

2.4水平翻转

def horizontal_crop(image):HorizontalCrop = transforms.RandomHorizontalFlip()horizontal_image = HorizontalCrop(image)return horizontal_image
#水平翻转
horizontal_cropped_image = horizontal_crop(im)
horizontal_cropped_image.save(os.path.join(output_image_dir,'horizontal_cropped_image.jpg'))
horizontal_cropped_image

2.5垂直翻转

def randomVertical_crop(image):RandomVerticalCrop = transforms.RandomVerticalFlip()randomVertical_image = RandomVerticalCrop(image)return randomVertical_image
#垂直翻转
randomVertical_cropped_image = randomVertical_crop(im)
randomVertical_cropped_image.save(os.path.join(output_image_dir,'randomVertical_cropped_image.jpg'))
randomVertical_cropped_image

2.6随机角度旋转

def randomRotation_crop(image):RandomRotationCrop = transforms.RandomRotation(degrees=(10,80))randomRotation_image = RandomRotationCrop(image)return randomRotation_image
#随机角度旋转
randomRotation_cropped_image = randomRotation_crop(im)
randomRotation_cropped_image.save(os.path.join(output_image_dir,'randomRotation_cropped_image.jpg'))
randomRotation_cropped_image

在这里插入图片描述

2.7色度、对比度、亮度、饱和度对比

def colorJitter_crop(image):im = transforms.ColorJitter(brightness=1)(image)im = transforms.ColorJitter(contrast=1)(im)im = transforms.ColorJitter(saturation=1)(im)im = transforms.ColorJitter(hue=1)(im)return im
#色度、对比度、亮度、饱和度对比
colorJitter_cropped_image = colorJitter_crop(im)
colorJitter_cropped_image.save(os.path.join(output_image_dir,'colorJitter_cropped_image.jpg'))
colorJitter_cropped_image

在这里插入图片描述

2.8随机灰度化

def randomGrayscale_crop(image):randomGrayscale_image = transforms.RandomGrayscale(p=0.5)(image)return randomGrayscale_image
#随机灰度化
randomGrayscale_cropped_image = randomGrayscale_crop(im)
randomGrayscale_cropped_image.save(os.path.join(output_image_dir,'randomGrayscale_cropped_image.jpg'))
randomGrayscale_cropped_image

在这里插入图片描述

2.9加入padding

def pad_crop(image):pad = transforms.Pad((0,(image.size[0]-image.size[1])//2))(image)return pad
#padding
pad_image = pad_crop(im)
pad_image.save(os.path.join(output_image_dir,'pad_image.jpg'))
pad_image

在这里插入图片描述

2.10指定区域擦除

def erase_crop(image,position,size):img = TF.to_tensor(image)erase_image = TF.to_pil_image(TF.erase(img=img,i=position[0],j=position[1],h=size[0],w=size[1],v=1))return erase_image
#指定区域擦除
erase_image = erase_crop(im,(200,400),(200,300))
erase_image.save(os.path.join(output_image_dir,'erase_image.jpg'))
erase_image

在这里插入图片描述

2.11伽玛变换

def gamma_crop(image,gamma_value):gamma_image = TF.adjust_gamma(img=image,gamma=gamma_value)return gamma_image
#随机裁剪
gamma_image = gamma_crop(im,0.2)
gamma_image.save(os.path.join(output_image_dir,'gamma_image.jpg'))
gamma_image

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/608805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序的登录模块实现

用户联动微信小程序。相关的实现层代码 发送url请求。 /*** 登录验证** param code 临时登录码* return */Overridepublic Map<String, Object> checkLogin(String code) {String url "https://api.weixin.qq.com/sns/jscode2session?appid" appid "…

RT-Thread 线程间同步 信号量

线程间同步 在多线程实时系统中&#xff0c;一项工作的完成往往可以通过多个线程协调的方式共同来完成。 例如一项工作中的两个线程&#xff1a;一个线程从传感器中接收数据并且将数据写到共享内存中&#xff0c;同时另一个线程周期性地从共享内存中读取数据并发送出去显示&a…

SpringCloud系列篇:核心组件之网关组件

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于SpringCloud的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.网关组件是什么 二. 网关组件的…

vivado 创建编译后工程

创建后期合成项目 合成后项目以合成网表、完全生成的块设计、完全生成的IP以及相应的约束。然后&#xff0c;您可以分析、布局和实施设计 注意&#xff1a;您可以使用XST或第三方合成工具来创建合成网表。 重要&#xff01;使用EDIF和NGC文件时&#xff0c;顶部单元格名称必…

java递归生成树型结构

java递归生成树 1.获取数据 public List<TreeClassifyRespVO> getTreeClassifyList(ClassifyPageReqVO reqVO) {List<ClassifyDO> classifyList classifyMapper.selectList(reqVO);List<TreeClassifyRespVO> childClassifyResp ClassifyConvert.INSTANCE…

MySQL之导入、导出

文章目录 1.navicat导入导出2.mysqldump命令导入导出2.1导出2.2导入 3.load data infile命令导入导出4.远程备份5.思维导图 1.navicat导入导出 使用Navicat工具导入t_log 共耗时 55s 2.mysqldump命令导入导出 2.1导出 导出表数据和表结构 语法&#xff1a; mysqldump -u用…

EasyExcel百万数据导入导出

文章目录 百万数据准备EasyExcel导出EasyExcel不支持并发写导出功能的代码片段 EasyExcel导入 https://gitee.com/antirust/idooy-stable/tree/master/idooy-EasyExcel 开发中&#xff0c;导入导出功能对于后台管理这样的系统来说太常用了&#xff0c;除了实现该功能外导入导出…

【算法笔记】动态规划专题

所有解题思路已经直接整合在代码注释中。 动态规划 整体结构 条件抽象与状态描述 【重点1】根据题目给出的限制条件&#xff0c;抽象出会影响决策的部分&#xff0c;这个条件的数量和用法&#xff0c;基本上就是dp领域内题目分类的依据了。比如&#xff0c;单上限的一般用线…

Python爬虫-爬取豆瓣Top250电影信息

&#x1f388; 博主&#xff1a;一只程序猿子 &#x1f388; 博客主页&#xff1a;一只程序猿子 博客主页 &#x1f388; 个人介绍&#xff1a;爱好(bushi)编程&#xff01; &#x1f388; 创作不易&#xff1a;喜欢的话麻烦您点个&#x1f44d;和⭐&#xff01; &#x1f388;…

QT qss文件设置样式

方式一 &#xff08;单个&#xff09; 方式二 &#xff08;全局&#xff09; 所有按钮都会采用这个样式。 方式三 &#xff08;qss文件&#xff09; 创建资源文件 创建qss文件&#xff08;Button.qss&#xff09; 引用qss文件 QApplication a(argc, argv);QString qss;QFile…

金三银四来了,助你一臂之力,10个专家级技巧助你优化React应用性能

Hey,高级JS React开发人员!您是否正在寻找提升技能,优化React应用程序以实现顶级性能? 您来对了! 在本文中,我将与您分享10个专家级性能技巧,这些技巧将大大增强您的React开发。 准备优化、简化和使您的应用程序快速如闪电。让我们深入探讨! 使用函数组件和React钩子: 与…

Kettle Local引擎使用记录(一)(基于Kettle web版数据集成开源工具data-integration源码)

Kettle Web &#x1f4da;第一章 前言&#x1f4da;第二章 demo源码&#x1f4d7;pom.xml引入Kettle引擎核心文件&#x1f4d7;java源码&#x1f4d5; controller&#x1f4d5; service&#x1f4d5; 其它&#x1f4d5; maven settings.xml &#x1f4d7;测试&#x1f4d5; 测试…

【STM32】STM32学习笔记-USART串口数据包(28)

00. 目录 文章目录 00. 目录01. 串口简介02. HEX数据包03. 文本数据包04. HEX数据包接收05. 文本数据包接收06. 预留07. 附录 01. 串口简介 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式&#xff0c;因为它简单便捷&#xff0c;因此大部分电子设备都支持…

Python 使用input函数从键盘输入数据

在Python中&#xff0c;input()函数可以从键盘获取用户的输入数据。当我们使用input()函数时&#xff0c;会暂停程序的执行&#xff0c;等待用户输入数据&#xff0c;并将用户输入的数据作为字符串返回。 如&#xff1a; name input("请输入你的姓名&#xff1a;"…

py判断端口是否被占用

在Python中&#xff0c;你可以使用socket库来判断一个端口是否被占用。下面是一个简单的示例代码&#xff1a; import socketdef is_port_open(port):with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:return s.connect_ex((host, port)) 0# 使用示例 if is_por…

Python私有变量的定义与访问

class Student():def __init__(self, name, age):self.name nameself.age ageself.__score 0def marking(self, score):if score < 0:return 分数不能为0self.__score scoreprint(self.name 同学本次得分是: str(self.__score)) def __talk(self): # 私有的类可通过在…

RocketMQ5-03RocketMQ-Dashboard和Java客户端访问示例

接上篇02快速部署RocketMQ5.x(手动和容器部署) 已经完成 RocketMQ5.0 环境的部署&#xff0c;就需要对这个环境进行测试&#xff0c;查看集群、写入消息、读取消息等 本篇教你如何使用和查看部署的服务&#xff1a; Docker部署 Dashboard 获取镜像并下载部署服务 客户端连接 …

哈希-力扣01两数之和

题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺…

spring boot 2升级为spring boot 3中数据库连接池druid的问题

目录 ConfigurationClassPostProcessor ConfigurationClassBeanDefinitionReader MybatisPlusAutoConfiguration ConditionEvaluator OnBeanCondition 总结 近期给了一个任务&#xff0c;要求是对现有的 spring boot 2.x 项目进行升级&#xff0c;由于 spring boot 2.x 版…

35-javascript基础,引入方式;变量命名规范

html分为三部分&#xff1b;结构html&#xff0c;表现css&#xff0c;行为js&#xff1b;js就是javascript js包含三部分&#xff1a; ECMAScript&#xff1a;简称ES&#xff0c;ES5&#xff0c;ES6核心语法 DOM&#xff1a;获取和操作html元素的标准方法&#xff1b;BOM&am…