torchvision.transforms.functional.resized_crop 是 PyTorch 中的一个函数,它用于从输入图像中裁剪指定大小的区域。
该函数接受以下参数:
- input: 表示图像的4D张量,形状为 (C, H, W),其中 C 是通道数(例如,RGB图像的通道数为3),H 和 W 分别表示图像的高度和宽度。
- boxes: 表示要裁剪的ROI的坐标,格式为 [y1, x1, y2, x2],其中 (y1, x1) 和 (y2, x2) 分别表示ROI的左上角和右下角坐标。坐标顺序应为 [y1, x1, y2, x2]。
- size: 指定输出裁剪的大小,格式为 (height, width)。
该函数返回一个4D张量,表示裁剪后的图像,形状为 (C, size[0], size[1])。
下面是一个使用 torchvision.transforms.functional.resized_crop 的示例:
import torchvision.transforms as transforms
from PIL import Image
# 从文件加载图像
image = Image.open("example.jpg")
# 将图像转换为张量
image_tensor = transforms.ToTensor()(image)
# 定义ROI坐标和大小
boxes = torch.tensor([[0.1, 0.1, 0.9, 0.9]])
size = (50, 50)
# 使用resized_crop裁剪图像
cropped_image = transforms.functional.resized_crop(image_tensor, boxes, size)
# 显示裁剪后的图像
cropped_image = transforms.ToPILImage()(cropped_image)
cropped_image.show()