import torch
import numpy as np
a = np.zeros([2, 2])
print('a\n', a)
out = torch.from_numpy(a)
print('out\n', out)
print('out.numpy\n', out.numpy())
输出结果:
a
[[0. 0.]
[0. 0.]]
out
tensor([[0., 0.],
[0., 0.]], dtype=torch.float64)
out.numpy
[[0. 0.]
[0. 0.]]
读取一张格式为numpy的图片转成tensor
import torch
import numpy as np
import cv2
data = cv2.imread('./test.png')
print('numpy格式\n', data)
cv2.imshow('test', data)
out = torch.from_numpy(data)
print('out\n', out)
执行结果:
numpy格式
[[[204 204 204]
[204 204 204]
[204 204 204]
...
[204 204 204]
[204 204 204]
[204 204 204]]
[[204 204 204]
[204 204 204]
[204 204 204]
...
[204 204 204]
[204 204 204]
[204 204 204]]
[[204 204 204]
[204 204 204]
[204 204 204]
...
[204 204 204]
[204 204 204]
[204 204 204]]
...
[[204 204 204]
[204 204 204]
[204 204 204]
...
[204 204 204]
[204 204 204]
[204 204 204]]
[[204 204 204]
[204 204 204]
[204 204 204]
...
[204 204 204]
[204 204 204]
[204 204 204]]
[[204 204 204]
[204 204 204]
[204 204 204]
...
[204 204 204]
[204 204 204]
[204 204 204]]]
out
tensor([[[204, 204, 204],
[204, 204, 204],
[204, 204, 204],
...,
[204, 204, 204],
[204, 204, 204],
[204, 204, 204]],
[[204, 204, 204],
[204, 204, 204],
[204, 204, 204],
...,
[204, 204, 204],
[204, 204, 204],
[204, 204, 204]],
[[204, 204, 204],
[204, 204, 204],
[204, 204, 204],
...,
[204, 204, 204],
[204, 204, 204],
[204, 204, 204]],
...,
[[204, 204, 204],
[204, 204, 204],
[204, 204, 204],
...,
[204, 204, 204],
[204, 204, 204],
[204, 204, 204]],
[[204, 204, 204],
[204, 204, 204],
[204, 204, 204],
...,
[204, 204, 204],
[204, 204, 204],
[204, 204, 204]],
[[204, 204, 204],
[204, 204, 204],
[204, 204, 204],
...,
[204, 204, 204],
[204, 204, 204],
[204, 204, 204]]], dtype=torch.uint8)
翻转图片
import torch
import numpy as np
import cv2
data = cv2.imread('./test.png')
print('numpy格式\n', data)
# test就是title,即显示在图片的最上边
cv2.imshow('test', data)
# 一定要添加下边这一行否则就执行过去了,就看不到图片了,
# 同时代码也就停到此行不会继续执行下去了,
# 当然如果不想看图片可以不添加
# cv2.waitKey(0)
# 将numpy类型转换为tensor类型
out = torch.from_numpy(data)
print('out\n', out)
print('*'*50)
# 按照给定的维度翻转张量
out = torch.flip(out, dims=[0])
data = out.numpy()
cv2.imshow('test1', data)
cv2.waitKey(0)
效果