Преобразование_16_бит_в_8_бит
- paleogis
- Модератор
- Сообщения: 1112
- Зарегистрирован: 22 мар 2009, 08:54
- Репутация: 200
- Ваше звание: Модератоо
Преобразование_16_бит_в_8_бит
Коллеги, поделитесь опытом. Какие опенсорные утилиты вы используете для преобразования 16 битного изображения в 8 битное?
Немного погуглил это вопрос, однако однозначного ответа не нашел.
Заранее спасибо за ответы
Немного погуглил это вопрос, однако однозначного ответа не нашел.
Заранее спасибо за ответы
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Преобразование_16_бит_в_8_бит
— ImageMagick с опцией -depth:
— ImageJ
Код: Выделить всё
convert picture_16bit.tif -depth 8 picture_8bit.tif
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 920
- Зарегистрирован: 30 дек 2008, 14:11
- Репутация: 236
- Откуда: Ханты-Мансийск
- Контактная информация:
Re: Преобразование_16_бит_в_8_бит
http://www.gdal.org/gdal_translate.html
Параметр -ot (тип данных выходного растра) нужно выставить Byte, что-то типа:
Параметр -ot (тип данных выходного растра) нужно выставить Byte, что-то типа:
Код: Выделить всё
gdal_translate -of GTiff -ot Byte file_16bit.tif file_8bit.tif
-
- Гуру
- Сообщения: 4064
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1061
- Ваше звание: программист
- Откуда: Казань
Re: Преобразование_16_бит_в_8_бит
только непонятно, что они с гистограммой сделают, если просто поделят на 256, то будут проблемы. Строго говоря, нужно считать гистограмму (убрав NA), потом делать линейное преобразование 16 битного изображения в диапазон 0-255 (тут опять же есть всякие тонкости, как округлять с учетом соседей), и только потом менять формат. Не уверен, что gdal (тем боле ImageMagick) это делает.
- paleogis
- Модератор
- Сообщения: 1112
- Зарегистрирован: 22 мар 2009, 08:54
- Репутация: 200
- Ваше звание: Модератоо
Re: Преобразование_16_бит_в_8_бит
Спасибо коллеги, пойду тестировать эти утилиты:)
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Преобразование_16_бит_в_8_бит
Проверил: ImageJ сохраняет картинку в 8 bit нормально (насколько я смог сравнить); в случае с IM (gamm был прав) надо добавить параметр -auto-level в команду:
Код: Выделить всё
convert picture_16bit.tif -auto-level -depth 8 picture_8bit.tif
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Преобразование_16_бит_в_8_бит
Естественно, сам ImageMagick ничерта не делает, если его не попросить об этом.
Есть параметры:
http://www.imagemagick.org/script/comma ... #normalize
http://www.imagemagick.org/script/comma ... st-stretch
http://www.imagemagick.org/script/comma ... ar-stretch
http://www.imagemagick.org/script/comma ... ?#equalize
http://www.imagemagick.org/script/comma ... php?#level
http://www.imagemagick.org/script/comma ... l-contrast
Ну и вообще там через оператор -fx можно собственные преобразования писать, см.
http://www.imagemagick.org/Usage/color_mods/#diy_levels
Важное замечание: для обработки ДДЗ стоит использовать Q16-версию ImageMagick, а не Q8.
Есть параметры:
http://www.imagemagick.org/script/comma ... #normalize
http://www.imagemagick.org/script/comma ... st-stretch
http://www.imagemagick.org/script/comma ... ar-stretch
http://www.imagemagick.org/script/comma ... ?#equalize
http://www.imagemagick.org/script/comma ... php?#level
http://www.imagemagick.org/script/comma ... l-contrast
Ну и вообще там через оператор -fx можно собственные преобразования писать, см.
http://www.imagemagick.org/Usage/color_mods/#diy_levels
Важное замечание: для обработки ДДЗ стоит использовать Q16-версию ImageMagick, а не Q8.
- paleogis
- Модератор
- Сообщения: 1112
- Зарегистрирован: 22 мар 2009, 08:54
- Репутация: 200
- Ваше звание: Модератоо
Re: Преобразование_16_бит_в_8_бит
Спасибо всем за ответы
У меня вопрос на засыпку относительно GDAL. Можно ли так извернуться, чтобы при преобразовании 16 бит в 8 бит он не резал гистограмму, делал auto-level?
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?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Преобразование_16_бит_в_8_бит
Отвечу ссылкой на свой же старый пост по идентичной теме.paleogis писал(а): У меня вопрос на засыпку относительно GDAL. Можно ли так извернуться, чтобы при преобразовании 16 бит в 8 бит он не резал гистограмму, делал auto-level?
Короче: утилита gdal_contrast_stretch из набора dans-gdal-scripts делает, что нужно.
Редактор материалов, модератор форума
- paleogis
- Модератор
- Сообщения: 1112
- Зарегистрирован: 22 мар 2009, 08:54
- Репутация: 200
- Ваше звание: Модератоо
Re: Преобразование_16_бит_в_8_бит
Спасибо, Александр! Искал и не заметил этой темыАлександр Мурый писал(а):Re: Преобразование_16_бит_в_8_бит
Сообщение Александр Мурый » 4 минуты назад
paleogis писал(а):У меня вопрос на засыпку относительно GDAL. Можно ли так извернуться, чтобы при преобразовании 16 бит в 8 бит он не резал гистограмму, делал auto-level?
Отвечу ссылкой на свой же старый пост по идентичной теме.
Короче: утилита gdal_contrast_stretch из набора dans-gdal-scripts делает, что нужно.
- paleogis
- Модератор
- Сообщения: 1112
- Зарегистрирован: 22 мар 2009, 08:54
- Репутация: 200
- Ваше звание: Модератоо
Re: Преобразование_16_бит_в_8_бит
Всем спасибо! Проблема решена.
Для преобразования с 16_бит в 8 бит воспользовался советом
Для переноса настроек гистограммы постом в этой теме.
Для преобразования с 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
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость