我正在解决一个问题,其中我具有像
一样对图像进行切片的功能X坐标,Y坐标,高度,要裁剪的区域的宽度
所以,如果我有使用的火炬图像
img = Variable(img.cuda())
我们如何对该图像进行切片以获得图像的特定区域 [y:y + height,x:x + width] 。 谢谢
答案 0 :(得分:0)
如果我正确理解了您的问题,那么您可以按照与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
中裁剪出来的。
答案 1 :(得分:0)
我使用这种表示法得到了解决方案
img[:, :, y:y+height, x:x+width]
因此,输出将为调整后的割炬图像。谢谢