我正在尝试用PIL加载一个16位颜色的RGBA图像
我从以下链接下载了图像pnggrad16rgba.png: https://www.fnordware.com/superpng/samples.html 我检查过它的颜色通道确实是每像素16位:
但是当我尝试在PIL中加载数据时,我得到了uint8
数据:
>>> from PIL import Image
>>> import numpy
>>> im = Image.open("D:/pnggrad16rgba.png")
>>> arr = numpy.array(im)
>>> arr.dtype
dtype('uint8')
>>> arr[0, 0]
array([ 0, 0, 255, 255], dtype=uint8)
有没有一种方法可以访问16位数据,而不必使用PIL
将其向下转换到uint8
如果没有,还有哪个图书馆可以处理这个问题
PIL不支持多通道16位/通道图像-请参阅documentation。我建议您使用带有
cv2.IMREAD_UNCHANGED
标志的OpenCV,如下所示:请注意,您的图像将按
BGRA
顺序排列,而不是RGBA
,因为OpenCV是。。。嗯,OpenCV如果需要,您可以使用
相关问题 更多 >
编程相关推荐