gpt4 book ai didi

python-3.x - 为什么 OpenCV 不显示存储在 numpy 数组中的图像? (Python)

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:28 24 4
gpt4 key购买 nike

我使用 cv2.imread 将图像读入一个变量,然后使用 cv2.imshow 将其显示得很好。我采用相同的变量并将其传递到与图像形状相同的 numpy 数组中并尝试显示它。相同的形状、相同的数据类型和数组中的相同值,我从 cv2.imshow 得到一个空白的白色方 block 。为什么不是图像?

如果我使用 numpy 数组并使用 cv2.imwrite 保存它,它可以很好地保存图片。任何帮助表示赞赏,这让我发疯。

images = np.zeros(shape=(1,30,30,3))

i = 1
a = cv2.resize(cv2.imread('/media/images/'+str(i)+'.png', 1), (30,30))

b = images[0] = a

print(b.shape, images[0].shape)
print(type(b), type(images[0]))

# Displays image
cv2.imshow('img', b)
cv2.waitKey(0)
cv2.destroyAllWindows()

# Displays blank, white image
cv2.imshow('img', images[0])
cv2.waitKey(0)
cv2.destroyAllWindows()

最佳答案

bimages 没有相同的数据类型:

>>> images[0].dtype
dtype('float64')
>>> b.dtype
dtype('uint8')

所以 cv2 不知道如何给图像上色。

所以如果你的第一行是:

images = np.zeros(shape=(1,30,30,3), dtype=np.uint8)

它应该可以解决问题。

关于python-3.x - 为什么 OpenCV 不显示存储在 numpy 数组中的图像? (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54446621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com