【PyTorch系列】PyTorch之torchvision 图像处理库详解

转换和增强图像(TRANSFORMING AND AUGMENTING)

转换是模块中可用的常见图像转换。可以使用 Compose 将它们链接在一起。大多数转换类都具有函数等效项:函数转换提供对转换的细粒度控制。如果您必须构建更复杂的转换管道(例如,在分段任务的情况下),这将非常有用。torchvision.transforms大多数变换同时接受 PIL 图像和张量图像,尽管有些变换仅接受 PIL,有些变换仅接受张量。转换转换可用于与 PIL 映像相互转换。

接受张量图像的变换也接受成批的张量图像。张量图像是具有形状的张量,其中是多个通道,并且是图像的高度和宽度。一批张量图像是形状的张量,其中是该批中的许多图像。(C, H, W)CHW(B, C, H, W)B

张量图像值的预期范围由张量 dtype 隐式定义。具有浮点 d 类型的张量图像应具有 中的值。具有整数 d 类型的张量图像应具有值,其中的值是可以在该 d 类型中表示的最大值。[0, 1)[0,MAX_DTYPE]MAX_DTYPE

随机转换将对给定批处理的所有图像应用相同的转换,但它们将在调用之间生成不同的转换。对于跨调用的可重现转换,可以使用功能转换。

Scriptable Transforms

In order to script the transformations, please use instead of Compose.torch.nn.Sequential

transforms = torch.nn.Sequential(
    transforms.CenterCrop(10),
    transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225)),
)
scripted_transforms = torch.jit.script(transforms)

Make sure to use only scriptable transformations, i.e. that work with and does not require lambda functions or .torch.TensorPIL.Image

For any custom transformations to be used with , they should be derived from .torch.jit.scripttorch.nn.Module

Functional Transforms
adjust_brightness(img, brightness_factor)

调整图像的亮度。

adjust_contrast(img, contrast_factor)

调整图像的对比度。

adjust_gamma(img, gamma[, gain])

对图像执行伽玛校正。

adjust_hue(img, hue_factor)

调整图像的色调。

adjust_saturation(img, saturation_factor)

调整图像的颜色饱和度。

adjust_sharpness(img, sharpness_factor)

调整图像的清晰度。

仿射(img,角度,平移,缩放,剪切)

对图像应用仿射变换,使图像中心保持不变。

自动造影器(img)

通过重新映射每个通道的像素来最大化图像的对比度,使最低的像素变为黑色,最亮的图像变为白色。

center_crop(img, output_size)

在中心裁剪给定图像。

convert_image_dtype(图像[,dtype])

将张量图像转换为给定图像并相应地缩放值 此函数不支持 PIL 图像。dtype

裁剪(img, 顶部, 左, 高度, 宽度)

在指定位置和输出大小裁剪给定图像。

均衡(img)

通过对输入应用非线性映射来均衡图像的直方图,以便在输出中创建灰度值的均匀分布。

erase(img, i, j, h, w, v[, inplace])

擦除具有给定值的输入张量图像。

five_crop(英制,尺寸)

将给定的图像裁剪成四个角和中央裁剪。

gaussian_blur(img, kernel_size[, sigma])

通过给定的核对图像执行高斯模糊。

get_dimensions(img)

返回图像的尺寸作为 [通道、高度、宽度]。

get_image_num_channels(img)

返回图像的通道数。

get_image_size(img)

将图像的大小返回为 [宽度、高度]。

hflip(img)

水平翻转给定图像。

反转(img)

反转 RGB/灰度图像的颜色。

规范化(张量,平均值,标准[,就地])

使用均值和标准差归一化浮点张量图像。

pad(img, padding[, fill, padding_mode])

使用给定的“pad”值在所有侧面填充给定的图像。

透视(img, startpoints, endpoints[, ...])

对给定图像执行透视变换。

pil_to_tensor(图)

将 a 转换为相同类型的张量。PIL Image

posterize(img, bits)

通过减少每个颜色通道的位数来对图像进行色调分离。

调整大小(img, size[, interpolation, max_size, ...])

将输入图像的大小调整为给定大小。

resized_crop(img, top, left, height, width, size)

裁剪给定的图像并将其大小调整为所需大小。

rgb_to_grayscale(img[, num_output_channels])

将 RGB 图像转换为图像的灰度版本。

旋转(img, angle[, 插值, 展开, ...])

按角度旋转图像。

solarize(img, threshold)

通过反转所有高于阈值的像素值来日化 RGB/灰度图像。

ten_crop(img, size[, vertical_flip])

从给定图像生成十张裁剪图像。

to_grayscale(img[, num_output_channels])

将任何模式(RGB,HSV,LAB等)的PIL图像转换为图像的灰度版本。

to_pil_image(图片[,模式])

将张量或 ndarray 转换为 PIL 图像。

to_tensor(图)

将 或 转换为张量。PIL Imagenumpy.ndarray

vflip(img)

垂直翻转给定的图像。

数据

Torchvision在模块中提供了许多内置数据集,以及用于构建自己的数据集的实用程序类。torchvision.datasets

内置数据集

所有数据集都是torch.utils.data.Dataset的子类,即它们具有和实现的方法。因此,它们都可以传递给torch.utils.data.DataLoader,后者可以使用worker并行加载多个样本。例如:__getitem____len__torch.multiprocessing

imagenet_data = torchvision.datasets.ImageNet(‘path/to/imagenet_root/’)
data_loader = torch.utils.data.DataLoader(imagenet_data,
batch_size=4,
shuffle=True,
num_workers=args.nThreads)
所有数据集都有几乎相似的API。它们都有两个共同的参数:分别转换输入和目标。您还可以使用提供的基类创建自己的数据集。transformtarget_transform

#### 图像分类 https://pytorch.org/vision/stable/datasets.html#image-classification
#### 图像检测或分割‎ https://pytorch.org/vision/stable/datasets.html#image-detection-or-segmentation
#### 光流 https://pytorch.org/vision/stable/datasets.html#optical-flow
#### 视频分类 https://pytorch.org/vision/stable/datasets.html#video-classification

自定义数据集可使用的基类

DatasetFolder(root, loader, Any], …)

通用数据加载程序。

ImageFolder(root, transform, …)

一个通用数据加载器,默认情况下,图像以这种方式排列:。

VisionDataset(root, transforms, transform, …)

基类 用于制作与火炬视觉兼容的数据集。

未完待续。。。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AiFool

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值