transforms数据预处理方法(一)

这篇具有很好参考价值的文章主要介绍了transforms数据预处理方法(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

transforms数据预处理方法(一)

1.transforms——裁剪

(1) transforms.CenterCrop(size)

功能:从图像中心裁剪图片
size:所需裁剪图片尺寸

transforms.CenterCrop(196)

transforms数据预处理方法(一)

(2) transforms.RandomCrop (size, padding= None , pad_if_needed= False ,fill= 0 , padding_mode= ‘constant’)

功能:从图片中随机裁剪出尺寸为size的图片
size:所需裁剪图片尺寸
padding:设置填充大小 ;
当为a时,上下左右均填充a个像素 ;
当为(a,b)时,上下填充b个像素,左右填充a个像素 ;
当为(a, b, c, d)时,左,上,右,下分别填充a, b, c, d
pad_if_need:若图像小于设定size,则填充 padding_mode:
填充模式,有4种模式
constant:像素值由fill设定 edge:像素值由图像边缘像素决定
reflect:镜像填充,最后一个像素不镜像,eg:[1,2,3,4] → [3,2,1,2,3,4,3,2]
symmetric:镜像填充,最后一个像素镜像,eg:[1,2,3,4] → [2,1,1,2,3,4,4,3]
fill:constant时,设置填充的像素值

transforms.Randomcrop(224,padding=16)

裁剪图片尺寸为224*224
上下左右均填充16个元素

transforms数据预处理方法(一)

 transforms.RandomCrop(224,padding=(16,64))

裁剪图片尺寸为224*224
上下左右均填充16个元素,上下填充64

transforms数据预处理方法(一)

 ransforms.RandomCrop(224,padding=16,fill=(255,0,0))

裁剪图片尺寸为224*224
上下左右均填充16个元素,填充采用RGB(255,0,0) 正红色

transforms数据预处理方法(一)

 transforms.RandomCrop(512, pad if needed=True), # pad if needed=True

如果裁剪大小大于图片本身大小 那么pad if needed 一定设为True 不然出问题
transforms数据预处理方法(一)

ransforms.RandomCrop(224,padding=64,padding mode='edge')

裁剪图片尺寸为224*224
上下左右均填充64个元素,用边缘的颜色进行填充

transforms数据预处理方法(一)

 transforms.RandomCrop(224,padding-64,padding_mode='reflect')

裁剪图片尺寸为224*224
上下左右均填充64个元素,用不包括边缘像素对称填充

transforms数据预处理方法(一)

 transforms.RandomCrop(1024, padding=1024,padding mode='symmetric'),

裁剪图片尺寸为1024*1024
上下左右均填充1024个元素,用包括边缘像素对称填充

transforms数据预处理方法(一)

(3) RandomResizedCrop (size, scale=(0.08, 1.0), ratio=(3/4, 4/3), interpolation)

功能:随机大小、长宽比裁剪图片
size:所需裁剪图片尺寸
scale:随机缩放面积比例, 默认(0.08, 1)
ratio:随机长宽比,默认(3/4, 4/3)
interpolation:插值方法

  • PIL.Image.NEAREST
  • PIL.Image.BILINEAR
  • PIL.Image.BICUBIC
tansforms.RandomResized(size=224,scale(0.08,1))

首先根据 scale 的比例缩放原图,然后根据 ratio 的长宽比裁剪,最后使用插值法把图片变换为 size 大小。

裁剪尺寸是224*224
transforms数据预处理方法(一)

(4) transforms.FiveCrop(size)

功能:在原始图片的左上右上左下右下中间裁剪size大小的图片
size:所需裁剪图片尺寸

transforms.FiveCrop(112),
transforms.lambada(lambda crops:torch.stack([(transforms.ToTensor()(crop)) for crop in crops])  # 变成张量的形式
(5) transforms.TenCrop(size, vertical_flip=False)

功能:在图像的上下左右以及中心裁剪出尺寸为size的5张图片,TenCrop对这5张图片 进行水平或者垂直镜像获得10张图片
size:所需裁剪图片尺寸
vertical_flip:是否垂直翻转

transforms.TenCrop(112,vertical_flip=True)
transforms.lambada(lambda crops:torch.stack([(transforms.ToTensor()(crop)) for crop in crops])  # 变成张量的形式

2.transform—翻转 旋转

(1) RandomHorizontalFlip(p=0.5)
(2) RandomVerticalFlip(p=0.5)

功能:依概率水平(左右)或垂直(上下)翻转图片
p:翻转概率

transforms.RandomHorizontalFlip(p=0.5)
transforms.RandomVerticalFlip(p=0.5)

transforms数据预处理方法(一)
transforms数据预处理方法(一)

(3) RandomRotation (degrees, resample=False, expand=False, center=None)

功能:随机旋转图片
degrees:旋转角度
当为a时,在(-a,a)之间选择旋转角度
当为(a, b)时,在(a, b)之间选择旋转角度
resample:重采样方法
expand:是否扩大图片,以保持原图信息
center:旋转点设置,默认中心旋转

transforms.RandomRotation(90)

角度是(-90-90)
transforms数据预处理方法(一)

transforms.RandomRotation((90),expand=True)

角度是(-90-90) 填充 以保持原图信息

transforms.RandomRotation(30,center=(0,0)

以左上角为定点进行旋转 角度是(-30-30)

transforms.RandomRotation(30,center(0,0),expand=True)

以左上角为轴进行旋转 角度为(-30,30)
transforms数据预处理方法(一)
发现图片还是有丢失 是因为它的机制适用于围绕着中心点旋转这一种情况,而这个代码围绕的是左上角 ,所以会造成填充不完整 ,图像缺失。

3. 小结

transform 裁剪:
CenterCrop
RadomCrop
RadomResizedCrop
FiveCrop
TenCrop

transform 翻转 旋转
RadomHorizontalFlip
RadomVerticalFlip
RadomRotation文章来源地址https://www.toymoban.com/news/detail-432473.html

到了这里,关于transforms数据预处理方法(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据预处理方法整理(数学建模)

    这篇文章主要是整理了一些作者在各种建模比赛中遇到的数据预处理问题以及方法,主要针对excel或csv格式的数据,为后续进行机器学习或深度学习做前期准备 导入库和文件,这里使用的是绝对路径,可改为相对路径 传入的为csv格式的文件,如果是xlsx格式的文件,建议先使

    2024年02月14日
    浏览(53)
  • Pytorch学习笔记(3):图像的预处理(transforms)

      目录  一、torchvision:计算机视觉工具包  二、transforms的运行机制 (1)torchvision.transforms:常用的图像预处理方法 (2)transforms运行原理   三、数据标准化 transforms.Normalize() 四、数据增强  4.1 transforms—数据裁剪 (1)transforms.CentorCrop (2)transforms.RandomCrop (3)RandomResiz

    2023年04月13日
    浏览(43)
  • 数学建模Matlab之数据预处理方法

    本文综合代码来自文章 作者通常首先判断是否具有异常值,因为如果有异常值的话,咱们就会剔除异常值,使其变成缺失值,然后再做缺失值处理会好很多。 对于上面的异常值检验法做讲解与扩展: 1. Mean 三倍标准差法(3σ原则) 描述 :在正态分布数据中,任何一个数值如

    2024年02月08日
    浏览(45)
  • 数据挖掘学习——数据预处理方法代码汇总(python)

    目录 一、归一化处理方法 (1)min-max方法(离散归一化) (2)零-均值规范化方法 (3)小数定标规范化 二、插值法 (1)拉格朗日插值法 三、相关性分析 (1)pearson相关性系数 (2)spearman相关性系数 四、主成分分析(PCA) 归一化常用方法有: (1)min-max方法(离散归一化

    2024年02月08日
    浏览(66)
  • Spark中数据预处理和清洗的方法(python)

    在Spark中进行数据分析,数据预处理和清洗是必不可少的步骤,以下是一些常用的方法: 去除重复行 去除空值 替换空值 更改数据类型 分割列 合并列 过滤行 去除重复行可以使用DataFrame的 dropDuplicates() 方法,例如: 去除空值可以使用DataFrame的 dropna() 方法,例如: 可以通过指

    2024年02月11日
    浏览(55)
  • AI人工智能预处理数据的方法和技术有哪些?

    在人工智能(Artificial Intelligence,简称AI)领域中,数据预处理是非常重要的一环。它是在将数据输入到模型之前对数据进行处理和清洗的过程。数据预处理可以提高模型的准确性、可靠性和可解释性。 本文将详细介绍AI人工智能预处理数据的方法和技术。 数据清洗是数据预

    2024年02月14日
    浏览(53)
  • 【Python】数据预处理之将类别数据转换为数值的方法(含Python代码分析)

    在进行Python数据分析的时候,首先要进行数据预处理。但是有时候不得不处理一些非数值类别的数据,遇到这类问题时该怎么解决呢? 目前为止,总结了三种方法,这里分享给大家。 这种方法是属于映射字典将类标转换为整数,不过这种方法适用范围有限。 我们首先创建一

    2024年02月09日
    浏览(58)
  • GPT-4科研实践:数据可视化、统计分析、编程、机器学习数据挖掘、数据预处理、代码优化、科研方法论

    查看原文GPT4科研实践技术与AI绘图 GPT对于每个科研人员已经成为不可或缺的辅助工具,不同的研究领域和项目具有不同的需求。 例如在科研编程、绘图领域 : 1、编程建议和示例代码:  无论你使用的编程语言是Python、R、MATLAB还是其他语言,都可以为你提供相关的代码示例。

    2024年02月07日
    浏览(59)
  • matlab数据的获取、预处理、统计、可视化、降维 | 《matlab数学建模方法与实践(第三版)》学习笔记

    一、数据的获取 1.1 从Excel中获取 使用readtable() 使用xlsread()——xlswrite() 1.2  从TXT中获取 使用load() 使用textread() 使用fopen() fread() fclose()  使用fprintf()写入信息到txt  1.3 从图片中获取 使用imread  1.4 从视频获取  使用视觉工具箱中的VideoFileReader  二、数据的预处理 2.1 缺失值处

    2024年01月19日
    浏览(65)
  • 图像预处理方法

    两个基本的形态学操作是腐 和膨胀。他们 的变体构成了开运算 ,闭运算, 梯度等。 根据卷积核的大小前景的所有像素会腐 掉 变为 0 ,所以前景物体会变小整幅图像的白色区域会减少。 对于去除白噪声很有用 也可以用来断开两个 在一块的物体等。 函数原型: ⚫src: 输入原

    2023年04月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包