将图像分配给数组并且无法以正确的方式显示数组

时间:2017-11-30 07:14:25

标签: python arrays image

import numpy as np
import cv2
import matplotlib.pyplot as plt
from PIL import Image
a=np.zeros([10,1080,1920,3])
path="C:\\Users\\zhzh7\\Desktop\\pictures\\ai2.jpg"
img=cv2.imread(path,1)
a[0]=img
print(type(img))
print(type(a[0]))
cv2.imshow("img",img)
cv2.imshow("a",a[0])
cv2.waitKey(0)
cv2.destroyAllWindows()

这是我的代码。 如您所见,我将图像分配给[0]并使用cv2显示[0],但它几乎是白色,应该是蓝色图像。convolution

任何人都知道如何解决这个问题? 谢谢!

1 个答案:

答案 0 :(得分:0)

这是数据类型。 np.zeros()默认为float64docs),而img的图片cv.imread()dtype=uint8

只需添加dtype即可:

# ...
a=np.zeros([10,1080,1920,3], dtype=np.uint8)
path="C:\\Users\\zhzh7\\Desktop\\pictures\\ai2.jpg"
img=cv2.imread(path,1)
a[0]=img
# ...