torchvision.transforms图像预处理常用方法简介

Transforms是在计算机视觉工具包torchvision下的包,常用于对图像进行预处理(如裁剪、翻转和旋转、图像变换……),提高泛化能力。

torchvision.transforms:常用的图像预处理方法
torchvision.datasets:常用数据集的dataset实现(MNIST、CIFAR-10、ImageNet等)
torchvision.model:常用的模型预训练(AlexNet、VGG、ResNet、GoogLeNet等)

import numpy as np
import torch
import torchvision.transforms as transforms
from PIL import Image

transforms.Compose将一系列的transforms有序组合,实现时按照这些方法依次对图像操作。

norm_mean = [0.485, 0.456, 0.406]
norm_std = [0.229, 0.224, 0.225]

transform = transforms.Compose([
	transforms.Resize((224, 224)),
	transforms.ToTensor(),
	transforms.Normalize(norm_mean, norm_std),
])


1 裁剪(Crop)

1.1 中心裁剪:transforms.CenterCrop

依据给定的size从中心裁剪

transforms.CenterCrop(size)
  • size:所需裁剪图片尺寸。为序列时表示(h, w) ,为int时表示(size, size)即正方形裁剪,下同

1.2 随机裁剪:transforms.RandomCrop

从图片中随机裁剪出尺寸为size的图片(位置随机裁剪)

transforms.RandomCrop(size,
					  padding=None,
					  pad_if_needed=False,
					  fill=0,
					  padding_mode='constant')
  • size:所需裁剪图片尺寸
  • padding:设置填充大小
    • 当为a时,上下左右均填充 a a a个像素
    • 当为(a, b)时,左右填充 a a a个像素,上下填充 b b b个像素
    • 当为(a, b, c, d)时,左、上、右、下4862分别填充 a a a b b b c c c d d d
  • pad_if_need:若图像小于设定size,则填充
  • padding_mode:填充模式
    1. constant:像素值由fill参数设定
    2. edge:像素值由图像边缘像素决定
    3. reflect:镜像填充,最后一个像素不镜像。【例】对 [ 1 , 2 , 3 , 4 ] [1,2,3,4] [1,2,3,4]进行2个像素的填充。左侧最后一个像素不镜像,忽略 1 1 1,从左至右为 2 , 3 2,3 2,3,镜像填充为 [ 3 , 2 , 1 , 2 , 3 , 4 ] [3,2,1,2,3,4] [3,2,1,2,3,4]。同理,右侧忽略 4 4 4,从右至左为 3 , 2 3,2 3,2,最终填充为 [ 3 , 2 , 1 , 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Akira37

💰unneeded

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值