Страница 1 из 1
Преобразование_16_бит_в_8_бит
Добавлено: 16 июл 2013, 09:20
paleogis
Коллеги, поделитесь опытом. Какие опенсорные утилиты вы используете для преобразования 16 битного изображения в 8 битное?
Немного погуглил это вопрос, однако однозначного ответа не нашел.
Заранее спасибо за ответы

Re: Преобразование_16_бит_в_8_бит
Добавлено: 16 июл 2013, 09:47
Александр Мурый
— ImageMagick с опцией
-depth:
Код: Выделить всё
convert picture_16bit.tif -depth 8 picture_8bit.tif
—
ImageJ
Re: Преобразование_16_бит_в_8_бит
Добавлено: 16 июл 2013, 09:51
bolotoved
http://www.gdal.org/gdal_translate.html
Параметр -ot (тип данных выходного растра) нужно выставить Byte, что-то типа:
Код: Выделить всё
gdal_translate -of GTiff -ot Byte file_16bit.tif file_8bit.tif
Re: Преобразование_16_бит_в_8_бит
Добавлено: 16 июл 2013, 10:03
gamm
только непонятно, что они с гистограммой сделают, если просто поделят на 256, то будут проблемы. Строго говоря, нужно считать гистограмму (убрав NA), потом делать линейное преобразование 16 битного изображения в диапазон 0-255 (тут опять же есть всякие тонкости, как округлять с учетом соседей), и только потом менять формат. Не уверен, что gdal (тем боле ImageMagick) это делает.
Re: Преобразование_16_бит_в_8_бит
Добавлено: 16 июл 2013, 10:17
paleogis
Спасибо коллеги, пойду тестировать эти утилиты:)
Re: Преобразование_16_бит_в_8_бит
Добавлено: 16 июл 2013, 10:23
Александр Мурый
Проверил: ImageJ сохраняет картинку в 8 bit нормально (насколько я смог сравнить); в случае с IM (gamm был прав) надо добавить параметр
-auto-level в команду:
Код: Выделить всё
convert picture_16bit.tif -auto-level -depth 8 picture_8bit.tif
Re: Преобразование_16_бит_в_8_бит
Добавлено: 16 июл 2013, 10:43
ericsson
Re: Преобразование_16_бит_в_8_бит
Добавлено: 16 июл 2013, 11:24
paleogis
Спасибо всем за ответы
bolotoved писал(а):http://www.gdal.org/gdal_translate.html
Параметр -ot (тип данных выходного растра) нужно выставить Byte, что-то типа:
Код: Выделить всё
gdal_translate -of GTiff -ot Byte file_16bit.tif file_8bit.tif
У меня вопрос на засыпку относительно GDAL. Можно ли так извернуться, чтобы при преобразовании 16 бит в 8 бит он не резал гистограмму, делал auto-level?

Re: Преобразование_16_бит_в_8_бит
Добавлено: 16 июл 2013, 11:45
Александр Мурый
paleogis писал(а):
У меня вопрос на засыпку относительно GDAL. Можно ли так извернуться, чтобы при преобразовании 16 бит в 8 бит он не резал гистограмму, делал auto-level?

Отвечу
ссылкой на свой же старый пост по идентичной теме.
Короче: утилита
gdal_contrast_stretch из набора
dans-gdal-scripts делает, что нужно.
Re: Преобразование_16_бит_в_8_бит
Добавлено: 16 июл 2013, 11:50
paleogis
Александр Мурый писал(а):Re: Преобразование_16_бит_в_8_бит
Сообщение Александр Мурый » 4 минуты назад
paleogis писал(а):У меня вопрос на засыпку относительно GDAL. Можно ли так извернуться, чтобы при преобразовании 16 бит в 8 бит он не резал гистограмму, делал auto-level?
Отвечу ссылкой на свой же старый пост по идентичной теме.
Короче: утилита gdal_contrast_stretch из набора dans-gdal-scripts делает, что нужно.
Спасибо, Александр! Искал и не заметил этой темы
Re: Преобразование_16_бит_в_8_бит
Добавлено: 16 июл 2013, 14:04
paleogis
Всем спасибо! Проблема решена.
Для преобразования с 16_бит в 8 бит воспользовался советом
bolotoved писал(а):
http://www.gdal.org/gdal_translate.html
Параметр -ot (тип данных выходного растра) нужно выставить Byte, что-то типа:
Код: Выделить всё
gdal_translate -of GTiff -ot Byte file_16bit.tif file_8bit.tif
Для переноса настроек гистограммы постом в
этой теме.
Код: Выделить всё
gdal_contrast_stretch -histeq 32768 16bit.tif 8bit.tif