Есть несколько возможностей ...
Сначала используйте imageio
для записи 16-битного PNG:
import imageio
import numpy as np
# Construct 16-bit gradient greyscale image
im = np.arange(65536,dtype=np.uint16).reshape(256,256)
# Save as PNG with imageio
imageio.imwrite('result.png',im)
Затем вы можете прочитать изображение обратно с диска и изменить первый пиксель на средне-серый (32768) следующим образом:
# Now read image back from disk into Numpy array
im2 = imageio.imread('result.png')
# Change first pixel to mid-grey
im2[0][0] = 32768
Или, если вам не нравится imageio
, вы можете использовать PIL/Pillow
и сохранить 16-битный TIFF:
from PIL import Image
import numpy as np
# Construct 16-bit gradient greyscale image
im = np.arange(65536,dtype=np.uint16).reshape(256,256)
# Save as TIFF with PIL/Pillow
Image.fromarray(im).save('result.tif')
Затем можно прочитать изображение с диска и изменить первый пиксель на средне-серый, например:
# Read image back from disk into PIL Image
im2 = Image.open('result.tif')
# Convert PIL Image to Numpy array
im2 = np.array(im2)
# Make first pixel mid-grey
im2[0][0] = 32768
Ключевые слова : Изображение, обработка изображений, Python, Numpy, PIL, Pillow, imageio, TIF, TIFF, PNG, 16 бит, 16 бит, короткий, без знака, сохранить, записать.