Обнуление/затемнение пикселей в файле типа .tiff (.svs или .ndpi)
Я пытаюсь обнулить пиксели в некоторых .tiff-подобных биомедицинских сканах (.svs и .ndpi), изменяя значения непосредственно в двоичном файле.
Для справки, я использую документы в формате .tiff здесь.
В качестве проверки работоспособности я подтвердил, что первые два байта имеют значения 73 и 73 (или I и I в ASCII), что означает прямой порядок следования байтов, а два следующих байта имеют значение 42 (обе эти вещи ожидается, как согласно только что упомянутым документам).
Я написал скрипт Python, который считывает IFD (каталог файлов изображений) и его компоненты, но оттуда у меня возникают проблемы.
Мой код таков:
with open('scan.svs', "rb") as f:
# Read away the first 4 bytes:
f.read(4)
# Read offset of first IFD as the four next bytes:
IFD_offset = int.from_bytes(f.read(4), 'little')
# Move to IFD:
f.seek(IFD_offset, 0)
# Read IFD:
IFD = f.read(12)
# Get components of IFD:
tag = int.from_bytes(IFD[:2], 'little')
field_type = int.from_bytes(IFD[2:4], 'little')
count = int.from_bytes(IFD[4:8], 'little')
value_offset = int.from_bytes(IFD[8:], 'little')
# Now what?
Значения для компонентов: tag=16, field_type=254, count=65540 и value_offset=0.
Как мне уйти оттуда?
Ps: Использование Python не является обязательным, если есть какой-то другой инструмент, который может упростить работу.