Я пытаюсь прочитать 16-битное изображение TIFF (26446 x 16688) в Python. Использование OpenCV читает только черное изображение (все интенсивности чтений 0) путем:OpenCV - Чтение 16-битного изображения TIFF в Python (данные дозорного-1)
self.img = cv2.imread(self.filename, cv2.IMREAD_UNCHANGED)
Может OpenCV обрабатывать 16 бит или большие изображения (~ 840mb)? Любое обходное решение?
EDIT: также cv2.imshow("output", self.img[0:600])
отображает черное изображение.
Просто подсказка ... попробуйте запустить ** команду InageMagick ** 'ident' для проверки минимального/максимального/среднего количества каталогов в вашем TIFF. Он установлен на большинстве Linux. Вы хотите «define -verbose YourImage.tif» –
У меня меньше 16-битных файлов TIFF, и они работают нормально (они даже отображаются корректно в 'imshow', хотя, вероятно, усечены до 8-бит -' 34067, 34983, 35287]] , dtype = uint16) '- так заканчивается мое изображение (137, 137, 137 при загрузке без' cv2.IMREAD_UNCHANGED'). Возможно, вы загружаете черный снимок, или фактический диапазон не совсем соответствует 16-разрядному (например, 12 бит, а сдвиг на 8 бит дает в основном нули). Это либо размер изображений, либо он работает правильно - попробуйте перемножить свое изображение с помощью некоторой силы 2 или нормализовать его (растянуть контрастность) перед отображением. Или первые 600 строк ARE черные ... –