获取RGB图像像素值为16位并填充列表

时间:2017-12-30 10:04:37

标签: python image pixel 16-bit

使用ImageMagick,我可以将任何图像转换为具有每个(RGB)像素的像素/值表示的文本文件。这是通过“convert spektrum.png spektrum.txt”获得的16位整数png文件的示例输出

# ImageMagick pixel enumeration: 1553,24,65535,srgba
0,0: (16192,7721,24114,65535)  #3F401E295E32FFFF  srgba(25%,12%,37%,1)

这表示图像中具有rgb(a)值的第一个左上角像素(0,0)。

问题: 如何使用Python(3)将相同的图像读入具有16位值的列表/数组?如果我用枕头阅读这个PNG文件

from PIL import Image
im = Image.open("spektrum.png")
pix = im.load()
print(pix[2,5])
(67, 35, 99, 255)

我只能从中获得0-255个RGBA值。

1 个答案:

答案 0 :(得分:1)

我现在可以用opencv读取16位值:

>>> import cv2
>>> img = cv2.imread('spektrum.png',-1) # -1 read format as is
>>> print(img.dtype)
uint16
>>> px = img[0,0]
>>> print(px)
[24114  7721 16192 65535]