如何将 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]
因此输出将是调整大小的手电筒图像。谢谢
我正在解决一个问题,在这个问题中我有像
这样的坐标来切片图像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]
因此输出将是调整大小的手电筒图像。谢谢