如何将火炬图像切片为numpy图像

时间:2018-12-10 13:13:58

标签: deep-learning pytorch vision

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

一样对图像进行切片的功能
  

X坐标,Y坐标,高度,要裁剪的区域的宽度

所以,如果我有使用的火炬图像

img = Variable(img.cuda())

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

2 个答案:

答案 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]

因此,输出将为调整后的割炬图像。谢谢