Pytoch之torchvision.transforms图像变换实例

yipeiwu_com5年前Python基础

transforms.CenterCrop(size)

将给定的PIL.Image进行中心切割,得到给定的size,size可以是tuple,(target_height, target_width)。size也可以是一个Integer,在这种情况下,切出来的图片的形状是正方形。

size可以为int,也可以为float

#定义中心切割
centerCrop = transforms.CenterCrop((img.size[0]/2,img.size[1]/2))
imgccrop = centerCrop(img)
 
transforms.RandomCrop(size,padding=0)

切割中心点的位置随机选取。size可以是tuple也可以是Integer。

但是如果是Tuple,只能是int型的不能是float

#要求目标size必须为整数
randomCrop1 = transforms.RandomCrop((int(img.size[0]/2),int(img.size[1]/2))) #padding默认为False
randomCrop2 = transforms.RandomCrop((int(img.size[0]/2),int(img.size[1]/2)),padding=10)
 
 
imgrcrop1 = randomCrop1(img)
imgrcrop2 = randomCrop2(img)
 

transforms.RandomHorizontalFlip

随机水平翻转给定的PIL.Image,概率为0.5。即:一半的概率翻转,一半的概率不翻转。

#随机将图片旋转180°
randomFlip = transforms.RandomHorizontalFlip()
 
imgf = randomFlip(img)

transforms.RandomSizedCrop(size, interpolation=2)

先将给定的PIL.Image随机切,然后再resize成给定的size大小。

size只能是Int,不能是float或tuple

#参数需为一个整数,不能是float或者tuple
randomcut = transforms.RandomResizedCrop(100)
imgc = randomcut(img)

transforms.Pad(padding, fill=0)

将给定的PIL.Image的所有边用给定的pad value填充。 padding:要填充多少像素fill

可以用于给图片加边框2333

#加边界框
pad = transforms.Pad(padding=10,fill=0)
pad_img = pad(img)
pad_img.save("block.jpg")

以上这篇Pytoch之torchvision.transforms图像变换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Numpy中转置transpose、T和swapaxes的实例讲解

利用Python进行数据分析时,Numpy是最常用的库,经常用来对数组、矩阵等进行转置等,有时候用来做数据的存储。 在numpy中,转置transpose和轴对换是很基本的操作,下面分别...

对Python的Django框架中的项目进行单元测试的方法

 Python中的单元测试 我们先来回顾一下Python中的单元测试方法。 下面是一个 Python的单元测试简单的例子: 假如我们开发一个除法的功能,有的同学可能觉得很简单,...

python3.6+selenium实现操作Frame中的页面元素

python3.6+selenium实现操作Frame中的页面元素

有时网页中会嵌套一个或者多个Frame,此时我们直接去找嵌套在Frame里面的元素会抛出异常,所以在操作的时候我们需要将页面焦点切换到Frame里面,下面我们就以一个实例演示一下! 首先...

举例讲解Python面向对象编程中类的继承

python创建一个类很简单只需要定义它就可以了. class Cat: pass 就像这样就可以了,通过创建子类我们可以继承他的父类(超类)的方法。这里重新写一下cat...

python实现Flappy Bird源码

python实现Flappy Bird源码

Flappy Bird是前段时间(好像一年or两年前....)特别火的有一个小游戏,相信大家都玩过。 Flappy Bird操作简单,通过点击手机屏幕使Bird上升,穿过柱状障碍物之后得...