目录

解码/编码图像和视频

torchvision.io 模块提供了图像和视频的解码和编码工具。

图像解码

Torchvision 当前支持解码 JPEG、PNG、WEBP 和 GIF 图像。JPEG 解码也可以在 CUDA GPU 上进行。

主要入口点是decode_image()函数,你可以将其作为PIL.Image.open()的替代。它会直接将图像解码为图像张量,从而节省转换步骤,并允许你在张量上原生运行变换/预处理。

from torchvision.io import decode_image

img = decode_image("path_to_image", mode="RGB")
img.dtype  # torch.uint8

# Or
raw_encoded_bytes = ...  # read encoded bytes from your file system
img = decode_image(raw_encoded_bytes, mode="RGB")

decode_image() 将自动检测图像格式, 并调用相应的解码器。您也可以使用功能更强大的特定格式的低级解码器,例如,如果您想在CUDA上编码/解码JPEG。

decode_image(input[, mode, ...])

从路径或原始编码字节解码出一张图像为 uint8 张量。

decode_jpeg(input[, mode, device, ...])

解码 JPEG 图像为 3D 的 RGB 或灰度 Tensor,支持 CPU 和 CUDA。

encode_png(input[, compression_level])

接受一个布局为 CHW 的输入张量,并返回其对应 PNG 文件的内容缓冲区。

decode_gif(输入)

解码一个 GIF 图像为 3 或 4 维的 RGB 张量。

decode_webp(input[, mode])

将一张 WEBP 图像解码为三维的 RGB[A] 张量。

ImageReadMode(值)

允许在解码时自动转换为 RGB、RGBA 等。

过时的解码函数:

read_image(path[, mode, apply_exif_orientation])

[已废弃] 请使用 decode_image() 代替。

图像编码

对于编码,支持 JPEG(CPU 和 CUDA)和 PNG。

encode_jpeg(input[, quality])

将 RGB 张量编码为原始的 JPEG 字节,在 CPU 或 CUDA 上进行处理。

write_jpeg(input, filename[, quality])

将布局为 CHW 的输入张量保存为 JPEG 文件。

encode_png(input[, compression_level])

接受一个布局为 CHW 的输入张量,并返回其对应 PNG 文件的内容缓冲区。

write_png(input, filename[, compression_level])

接受一个布局为 CHW 的输入张量(对于灰度图像为 HW),并将其保存为 PNG 文件。

IO操作

read_file(路径)

返回文件的字节内容作为 uint8 一维张量。

write_file(文件名, 数据)

将一个 uint8 一维张量的内容写入文件。

视频

警告

Torchvision 通过下面列出的不同 API 提供视频解码支持,其中一些仍在 BETA 阶段。在不久的将来,我们计划将 PyTorch 的视频解码能力集中到 torchcodec 项目中。我们鼓励您尝试并分享您的反馈,因为 torchvision 的视频解码器最终将被弃用。

read_video(filename[, start_pts, end_pts, ...])

从文件中读取视频,返回视频帧和音频帧。

read_video_timestamps(filename[, pts_unit])

列出视频帧的时间戳。

write_video(filename, video_array, fps[, ...])

以[T, H, W, C]格式写入4D张量到视频文件中

细粒度视频API

除了read_video函数之外,我们还提供了一个高性能的低级API,与read_video函数相比,它提供了更精细的控制。它在完全支持torchscript的同时实现了这一切。

VideoReader(src[, stream, num_threads])

细粒度视频读取API。

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源