decode_jpeg¶
- torchvision.io.decode_jpeg(input: Union[Tensor, List[Tensor]], mode: ImageReadMode = ImageReadMode.UNCHANGED, device: Union[str, device] = 'cpu', apply_exif_orientation: bool = False) Union[Tensor, List[Tensor]][source]¶
將一張或多張 JPEG 影像解碼為 CPU 或 CUDA 上的 3D RGB 或灰度 Tensor。
輸出 Tensor 的值為 uint8 型別,範圍在 0 到 255 之間。
注意
使用 CUDA 裝置時,傳遞 Tensor 列表比重複呼叫
decode_jpeg更高效。使用 CPU 時效能相當。此函式的 CUDA 版本經過專門設計,考慮了執行緒安全性。如果發生錯誤,此函式不會返回部分結果。- 引數:
input (Tensor[1] or list[Tensor[1]]) – 包含 JPEG 影像原始位元組的一維 uint8 Tensor(或 Tensor 列表)。無論
device引數如何,這些 Tensor 都必須位於 CPU 上。mode (str or ImageReadMode) – 將影像轉換為的模式,例如 “RGB”。預設為 “UNCHANGED”。有關可用模式,請參見
ImageReadMode。device (str or torch.device) –
解碼影像將被儲存在的裝置。如果指定了 CUDA 裝置,影像將使用 nvjpeg 進行解碼。這僅支援 CUDA 版本 >= 10.1。
警告
device 引數處於 Beta 階段,不保證向後相容性。
警告
在 CUDA 版本 < 11.6 中,nvjpeg 庫存在記憶體洩漏。在使用
device="cuda"之前,請確保使用 CUDA 11.6 或更高版本。apply_exif_orientation (bool) – 對輸出 Tensor 應用 EXIF 方向變換。預設值:False。僅在 CPU 上對 JPEG 格式實現。
- 返回值:
輸出 Tensor 的值為 uint8 型別,範圍在 0 到 255 之間。
output.device將被設定為指定的device。- 返回型別:
output (Tensor[image_channels, image_height, image_width] or list[Tensor[image_channels, image_height, image_width]])