Как Вы указываете определенное сжатие tiff Группы 3?

Взгляните на http://www.boost.org/doc/tools.html . В частности, полезна утилита bcp , если вы хотите встроить ваши буст-зависимости в ваш проект. Выдержка из веб-сайта:

«Утилита bcp - это инструмент для извлечения подмножеств Boost, она полезна для авторов Boost, которые хотят распространять свою библиотеку отдельно от Boost, и для пользователей Boost, которые хотят распространять подмножество Boost с их приложением.

bcp также может сообщать, от каких частей Boost зависит ваш код, и какие лицензии используются этими зависимостями. "

Конечно, это может иметь некоторые недостатки - но, по крайней мере, вы должны знать о возможности сделать это.

6
задан 18 February 2009 в 22:34
поделиться

1 ответ

Да. Чаще всего сжатие Группы 3 (точнее, CCITT T.4) используется для изображения ФАКСА. В этом случае изображение по определению является двухуровневым (1 бит) изображением, и ожидается одномерное сжатие. Таким образом, если вы не сделаете ничего, кроме установки значения сжатия (тег 259) на «2» (для двухуровневого изображения), то это будет считаться одномерным кодированием G3 (модифицированное кодирование Хаффмана). Единственные другие варианты - это отсутствие сжатия (1) и пакетные биты (32773). Все три типа кодирования должны поддерживаться базовыми считывателями, но по моему опыту многие считыватели не поддерживают должным образом сжатие группы III, особенно G32D.

G31D намного проще реализовать, чем G32D, но не так эффективно. G31D сохраняет каждую строку развертки отдельно, а G32D сохраняет различия между строками развертки. Это может иметь огромное значение в объеме данных, необходимых для определения изображения, такого как типичное факсимильное изображение, где большая часть изображения представляет собой чистый белый лист.

Если вы хотите использовать двухмерное кодирование G3, вы должны быть более конкретными в тегах. Вы должны использовать кодировки CCITT, чтобы указать кодирование сжатия T4 (CCITT T.4 - это «настоящее» имя для стандарта кодирования «Группа 3»). Чтобы указать это, установите тег 259 == 3. Затем установите параметры T4, чтобы указать двухмерное кодирование. Тег параметров T4 (тег 292) немного сложнее по сравнению с простыми тегами, такими как тег стандартного сжатия (259). Это тип LONG, используемый как набор 32-битных флагов. Если вы оставите все биты равными нулю, то по умолчанию понимается одномерное кодирование (не чем иным, как без включения этого тега).

Для двумерного кодирования, вы должны установить нулевой бит (младший бит) в 1. (Если вы используете более одной полосы, каждая полоса, очевидно, должна начинаться с одномерной линии развертки.) Бит 1 устанавливается в 1 только в том случае, если используется несжатый режим. Бит 2 используется, чтобы указать, использовали ли вы биты заполнения для сохранения EOL на границе байта (установлен в 1, если истина). Все остальные биты по умолчанию равны 0.

Имейте в виду, что большинство читателей не понимают все параметры, доступные в TIFF. Это чрезвычайно мощный формат, но из-за этого его сложно реализовать за пределами базовой линии TIFF (которая, вероятно, обрабатывает более 90% изображений TIFF). Если вы используете 2-мерное кодирование группы 3, вы можете ожидать, что большинство считывающих устройств, которые специально поддерживают факсимильные изображения и медицинские изображения *, будут правильно декодировать изображение. Я бы не стал надеяться на большее, чем это.

( TIFF не является стандартным форматом медицинских изображений, но по моему опыту читатели, поддерживающие как изображения DICOM, так и изображения TIFF, обычно поддерживают полный стандарт TIFF )

Этот ответ длиннее, чем я предполагал. Если я все еще не ответил на ваш вопрос, поясните в своем исходном сообщении, и я отредактирую свой ответ.

РЕДАКТИРОВАТЬ: Вы можете найти стандарт TIFF и другие вспомогательные документы на сайте разработчика Adobe. http://partners.adobe.com/public/developer/tiff/index.html

2
ответ дан 17 December 2019 в 20:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: