我有一个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。那为什么我会收到这个错误?预先感谢
答案 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()