Как сохранить изображение в виде бинарного сжатого .tiff python?

Есть ли какая-нибудь библиотека для сохранения изображений в двоичном (1 бит на пиксель) сжатом файле .tiff? opencv и подушка не могут этого сделать


person asmekal    schedule 11.12.2018    source источник
comment
вы нашли какое-нибудь решение для вашей проблемы?   -  person beesleep    schedule 01.09.2019
comment
@beesleep Я пока не нашел решения   -  person asmekal    schedule 03.09.2019


Ответы (2)


На самом деле, я только что нашел способ сделать это с помощью Pillow, но необходимы некоторые настройки из-за некоторой ошибки.

import numpy as np
from PIL import Image, TiffImagePlugin

filepath = '/some/file/path.tif'
# generate a 1bit image
ar = np.random.rand(50, 50) > 0.5
arr_2 = np.repeat(np.repeat(ar, 10, axis=0), 10, axis=1)

# save it t
size = mask.shape[::-1]
databytes = np.packbits(mask, axis=1)
mask = Image.frombytes(mode='1', size=size, data=databytes)
TiffImagePlugin.WRITE_LIBTIFF = True
mask.save(filepath, compression='packbits')
TiffImagePlugin.WRITE_LIBTIFF = False
person beesleep    schedule 03.09.2019

Вы можете попробовать использовать libtiff.

Установить с помощью pip install libtiff

person mkarts    schedule 11.12.2018
comment
Вы можете указать точный способ сохранения? что-то вроде libtiff.save_image(fname, format='rle') - я не уверен, возможно ли это с этой библиотекой - person asmekal; 11.12.2018