使用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值。
答案 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]