Есть ли у кого-нибудь метод импорта 16-битного канала, трехканального TIFF-изображения в Python?
Мне еще предстоит найти метод, который сохранит 16-битную глубину на канал при работе с форматом TIFF. Я надеюсь, что у некоторой полезной души будет решение.
Вот список того, что я пробовал до сих пор без успеха и результатов:
import numpy as np
import PIL.Image as Image
import libtiff
import cv2
im = Image.open('a.tif')
# IOError: cannot identify image file
tif = libtiff.TIFF.open('a.tif')
im = tif.read_image()
# im only contains one of the three channels. im.dtype is uint16 as desired.
im = []
for i in tif.iter_images():
# still only returns one channel
im = np.array(cv2.imread('a.tif'))
# im.dtype is uint8 and not uint16 as desired.
# specifying dtype as uint16 does not correct this
Пока единственным решением, которое я нашел, является преобразование изображения в PNG с ImageMagick. Тогда стандарт болота matplotlib.pyplot.imread
без проблем читает PNG файл.
Еще одна проблема, которую я имею, заключается в том, чтобы сохранить любые массивы numpy в виде 16-битных PNG файлов, которые до сих пор не были простыми.