如何将 Torch 图像切片为 numpy 图像

How to slice Torch images as numpy images

我正在解决一个问题,在这个问题中我有像

这样的坐标来切片图像

X cordinate, Y coordinate, Height, width of the region to crop

所以如果我有使用

获得的手电筒图像
img = Variable(img.cuda())

我们如何切片此图像以获得图像的特定区域 [y:y+height, x:x+width] 。 谢谢

如果我对你的问题理解正确,那么你可以像在 numpy 中那样做。

这是一个简短的例子:

import torch
t = torch.rand(5, 5)
# original matrix
print(t)
h = 2
w = 2
x = 1
y = 1
# cropped out matrix
print(t[x:x+h, y:y+w])

输出:

tensor([[ 0.5402,  0.4106,  0.9904,  0.9556,  0.2217],
        [ 0.4533,  0.6300,  0.5352,  0.2710,  0.4307],
        [ 0.6389,  0.5660,  0.1582,  0.5701,  0.1614],
        [ 0.1717,  0.4071,  0.4960,  0.2127,  0.5587],
        [ 0.9529,  0.2865,  0.6667,  0.7401,  0.3372]])
tensor([[ 0.6300,  0.5352],
        [ 0.5660,  0.1582]])

如您所见,2x2 矩阵从 t 中裁剪掉。

我用这个符号得到了解决方案

img[:, :, y:y+height, x:x+width]

因此输出将是调整大小的手电筒图像。谢谢