transforms可以用来改变样本的多样性,例如:旋转、平移等等,训练图像辨识时,一定会用到的工具,现在来跟大家介绍他有哪些用法!我拿还未处理过的资料来当示范。这里我把图片都转换成400*400的大小。
from torchvision import transforms
from PIL import Image
def img_loader(img_path):
image = Image.open(img_path)
img = image.resize((400, 400),Image.ANTIALIAS)
return img.convert('RGB')
transforms.Resize
重置影像解析度。
img = img_loader(r"C:\Users\Frank\PycharmProjects\practice\mountain\train\5_拓.jpg")
tranform = transforms.Compose([transforms.Resize(size=(300))])
img = tranform(img)
img.show()
img = img_loader(r"C:\Users\Frank\PycharmProjects\practice\mountain\train\5_拓.jpg")
tranform = transforms.Compose([transforms.Resize(size=(300,200))])
img = tranform(img)
img.show()
标准化:transforms.Normalize
对资料按通道进行标准化,即先减均值,再除以标准差。
转为tensor:transforms.ToTensor
修改亮度、对比度和饱和度:transforms.ColorJitter
调整亮度、对比度、饱和度、色相。
调整亮度
img = img_loader(r"C:\Users\Frank\PycharmProjects\practice\mountain\train\5_拓.jpg")
tranform = transforms.Compose([transforms.ColorJitter(brightness=(0.3,1.5))])
img = tranform(img)
img.show()
调整对比
img = img_loader(r"C:\Users\Frank\PycharmProjects\practice\mountain\train\5_拓.jpg")
tranform = transforms.Compose([transforms.ColorJitter(contrast=(0.3,0.5))])
img = tranform(img)
img.show()
调整饱和度
img = img_loader(r"C:\Users\Frank\PycharmProjects\practice\mountain\train\5_拓.jpg")
tranform = transforms.Compose([transforms.ColorJitter(saturation=(0.3,0.5))])
img = tranform(img)
img.show()
调整色相
img = img_loader(r"C:\Users\Frank\PycharmProjects\practice\mountain\train\5_拓.jpg")
tranform = transforms.Compose([transforms.ColorJitter(hue=(0.3,0.5))])
img = tranform(img)
img.show()
转为灰阶图:transforms.Grayscale
转为灰阶图。
img = img_loader(r"C:\Users\Frank\PycharmProjects\practice\mountain\train\5_拓.jpg")
tranform = transforms.Compose([transforms.Grayscale(num_output_channels=1)])
img = tranform(img)
img.show()
对图像进行仿射变换,为2维的线性转换。有五种基本操作,旋转、平移、缩放、错切及翻转。
img = img_loader(r"C:\Users\Frank\PycharmProjects\practice\mountain\train\5_拓.jpg")
tranform = transforms.Compose([transforms.RandomAffine(degrees=30)])
img = tranform(img)
img.show()
平移
img = img_loader(r"C:\Users\Frank\PycharmProjects\practice\mountain\train\5_拓.jpg")
tranform = transforms.Compose([transforms.RandomAffine(degrees= 0 ,translate=(0.2,0.5))])
img = tranform(img)
img.show()
缩放
img = img_loader(r"C:\Users\Frank\PycharmProjects\practice\mountain\train\5_拓.jpg")
tranform = transforms.Compose([transforms.RandomAffine(degrees= 0 ,scale=(0.2,0.5))])
img = tranform(img)
img.show()
错切
img = img_loader(r"C:\Users\Frank\PycharmProjects\practice\mountain\train\5_拓.jpg")
tranform = transforms.Compose([transforms.RandomAffine(degrees= 0 ,shear=(30))])
img = tranform(img)
img.show()
<<: Day 17 中场休息,来做点酷东西(取值 & 验证)
>>: [Day 15] 中场休息 pt.2-整个电脑,都是我的工作室
原本计画今天要把前四天的工作表合成数据仪表板,不过早上看了看原始资料後,发现其实还可以再做一张工作表...
智慧合约是一种可以让你避免有中间人介入的合约。如果你想要签约买车、买房子,都需要透过仲介、业务销售...
这篇只包含我自己不熟悉的题型,建议有看到文章的人自己做做看题目! 题目来自 六角学院 的 观念测验:...
颗粒可视为测量单元。当我们说我们的软件被测试了50%,或者测试覆盖率是50%,这到底是什麽意思,因为...
前言:在第16、17天的时候有介绍到堆积,今天要利用堆积的特性来实现排序法,忘记或不知道堆积是甚麽的...