Pytoch之torchvision.transforms图像变换实例

yipeiwu_com6年前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设计】。

相关文章

用uWSGI和Nginx部署Flask项目的方法示例

用uWSGI和Nginx部署Flask项目的方法示例

概况 在开发过程中,我们一般直接用Python命令直接运行Flask程序。这样的运行只适合我们开发,方便我们调试。一旦程序部署到线上,这样运行的Flask程序性能会比较低。可以采用uW...

在python3环境下的Django中使用MySQL数据库的实例

在python3环境下的Django中使用MySQL数据库的实例

我们在使用Django过程中,数据库往往是离不开的,比较长常用的是MySQL数据库,但在使用过程中,对Python不同的版本对用的库也不一样,用惯了Python2的人在使用Python3...

Python读取图片EXIF信息类库介绍和使用实例

首先要介绍的是 Python Imaging Library,使用方法如下: 复制代码 代码如下: from PIL import Image from PIL.ExifTags imp...

在Python中操作字典之clear()方法的使用

 clear()方法将删除字典中的所有项目(清空字典) 语法 以下是clear()方法的语法: dict.clear() 参数   &nbs...

Python语言描述最大连续子序列和

求最大连续子序列的和是一个很经典很古老的面试题了,记得在刚毕业找工作面试那会也遇到过同款问题。今儿突然想起来,正好快到毕业季,又该是苦逼的应届生们各种面试的时候到了,就给写了一些小代码解...