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

问题描述 投票:0回答:2

我正在解决一个问题,其中我有坐标来切片图像,如

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

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

img = Variable(img.cuda())

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

python numpy deep-learning pytorch
2个回答
1
投票

如果我正确理解你的问题,那么你可以像在 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
投票

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

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

因此输出将是调整大小的火炬图像。谢谢

© www.soinside.com 2019 - 2024. All rights reserved.