解码 / 编码图像和视频¶
该模块提供了用于解码和编码的实用程序
图像和视频。torchvision.io
图像解码¶
Torchvision 目前支持解码 JPEG、PNG、WEBP 和 GIF 图像。JPEG 格式 解码也可以在 CUDA GPU 上完成。
主要入口点是函数,该函数
您可以用作 的替代项。它将解码图像
直接转换为图像 Tensors,从而节省转换并允许您
在 Tensor 上本地运行 transforms/preproc。
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")
会自动检测图片格式,
并调用相应的解码器。您也可以使用较低级别的
特定于格式的解码器,可以更强大,例如,如果您想
在 CUDA 上编码/解码 JPEG。
将图像从路径或原始编码字节解码为 uint8 张量。 |
|
在 CPU 或 CUDA 上将 JPEG 图像解码为 3D RGB 或灰度张量。 |
|
采用 CHW 布局中的输入张量,并返回一个缓冲区,其中包含其相应 PNG 文件的内容。 |
|
将 GIF 图像解码为 3 维或 4 维 RGB 张量。 |
|
将 WEBP 图像解码为 3 维 RGB[A] 张量。 |
允许在解码时自动转换为 RGB、RGBA 等。 |
过时的解码功能:
图像编码¶
对于编码,支持 JPEG(cpu 和 CUDA)和 PNG。
在 CPU 或 CUDA 上将 RGB 张量编码为原始编码的 jpeg 字节。 |
|
获取 CHW 布局中的输入张量并将其保存在 JPEG 文件中。 |
|
采用 CHW 布局中的输入张量,并返回一个缓冲区,其中包含其相应 PNG 文件的内容。 |
|
获取 CHW 布局中的输入张量(如果是灰度图像,则为 HW)并将其保存在 PNG 文件中。 |
IO 操作¶
将文件的字节内容作为 uint8 1D Tensor 返回。 |
|
将 uint8 1D 张量的内容写入文件。 |
视频¶
警告
Torchvision 支持通过下面列出的不同 API 进行视频解码, 其中一些仍处于 BETA 阶段。在不久的将来,我们打算 将 PyTorch 的视频解码功能集中在 torchcodec 项目中。我们鼓励您尝试 它出来并分享您的反馈,就像 TorchVision 视频解码器一样 最终被弃用。
从文件中读取视频,同时返回视频帧和音频帧 |
|
列出视频帧时间戳。 |
|
在视频文件中写入 [T, H, W, C] 格式的 4d 张量 |
细粒度视频 API
除了功能之外,我们还提供高性能
与函数相比,用于更精细的控制。
它在完全支持 torchscript 的同时完成所有这些工作。read_video
read_video
细粒度视频阅读 API。 |