使用cv2.imshow显示np.int32的numpy数组

时间:2020-08-23 04:45:27

标签: python opencv

我有一个shape (617, 767), dtype = int32的numpy数组。数组中的最大值为164,数组中的最小值为-166。当我使用cv2.imshow将数组显示为图像时,出现此错误:

error: (-215:Assertion failed) src_depth != CV_16F && src_depth != CV_32S in function 'convertToShow'

我了解到cv2.imshow在显示类似图像的数组之前会将负值转换为0。那为什么我会收到这个错误?预先感谢

1 个答案:

答案 0 :(得分:0)

here所述,您可以使用PIL库。

  • 使用fromarray函数将数组转换为图像。

例如:

import cv2
from PIL import Image

# data is your numpy array with shape (617, 767)
img = Image.fromarray(data, 'RGB')

# Display with opencv
cv2.imshow("output", img)
cv2.waitKey(0)
cv2.destroyAllWindows()