快捷方式

解码/编码图像和视频

torchvision.io 包提供执行 IO 操作的函数。它们目前特定于读取和写入图像和视频。

图像

read_image(path[, mode, apply_exif_orientation])

将 JPEG 或 PNG 图像读入 3 维 RGB 或灰度张量。

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

检测图像是否为 JPEG 或 PNG,并执行适当的操作以将图像解码为 3 维 RGB 或灰度张量。

encode_jpeg(input[, quality])

获取 CHW 布局的输入张量,并返回一个包含其相应 JPEG 文件内容的缓冲区。

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

将 JPEG 图像解码为 3 维 RGB 或灰度张量。

write_jpeg(input, filename[, quality])

获取 CHW 布局的输入张量,并将其保存在 JPEG 文件中。

encode_png(input[, compression_level])

获取 CHW 布局的输入张量,并返回一个包含其相应 PNG 文件内容的缓冲区。

decode_png(input[, mode, apply_exif_orientation])

将 PNG 图像解码为 3 维 RGB 或灰度张量。

write_png(input, filename[, compression_level])

采用 CHW 布局(或对于灰度图像采用 HW 布局)的输入张量并将其保存在 PNG 文件中。

read_file(path)

读取并输出文件字节内容,形式为具有一个维度的 uint8 张量。

write_file(filename, data)

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

ImageReadMode(value)

支持在读取图像时的各种模式。

视频

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 的同时执行所有这些操作。

警告

细粒度视频 API 处于 Beta 阶段,不保证向后兼容。

VideoReader(src[, stream, num_threads])

细粒度视频读取 API。

检查视频的示例

import torchvision
video_path = "path to a test video"
# Constructor allocates memory and a threaded decoder
# instance per video. At the moment it takes two arguments:
# path to the video file, and a wanted stream.
reader = torchvision.io.VideoReader(video_path, "video")

# The information about the video can be retrieved using the
# `get_metadata()` method. It returns a dictionary for every stream, with
# duration and other relevant metadata (often frame rate)
reader_md = reader.get_metadata()

# metadata is structured as a dict of dicts with following structure
# {"stream_type": {"attribute": [attribute per stream]}}
#
# following would print out the list of frame rates for every present video stream
print(reader_md["video"]["fps"])

# we explicitly select the stream we would like to operate on. In
# the constructor we select a default video stream, but
# in practice, we can set whichever stream we would like
video.set_current_stream("video:0")

文档

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

查看文档

教程

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

查看教程

资源

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

查看资源