Обнуление/затемнение пикселей в файле типа .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 не является обязательным, если есть какой-то другой инструмент, который может упростить работу.

0 ответов

Другие вопросы по тегам