Geotiff 16bit -> 8bit
-
- Участник
- Сообщения: 57
- Зарегистрирован: 25 янв 2009, 16:34
- Репутация: 0
Geotiff 16bit -> 8bit
Добрый день!
Подскажите пожалуйста как конвертировать данные в geotiff с пикселом 16bit в unsigned 8bit?
Подскажите пожалуйста как конвертировать данные в geotiff с пикселом 16bit в unsigned 8bit?
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Geotiff 16bit -> 8bit
А что у вас есть? Для программ обработки ДЗЗ - это стандартная функция.
Фотошоп читает 16 bit. Правда при сохранении "убивает" гео-теги - их надо сохранять и восстанавливать отдельно. Но в переводе 16 -> 8, 90% труда или "ума" составляет приведение гистограммы, а это уже отдельная работа, особенно для многоканальных изображений.
Фотошоп читает 16 bit. Правда при сохранении "убивает" гео-теги - их надо сохранять и восстанавливать отдельно. Но в переводе 16 -> 8, 90% труда или "ума" составляет приведение гистограммы, а это уже отдельная работа, особенно для многоканальных изображений.
-
- Участник
- Сообщения: 57
- Зарегистрирован: 25 янв 2009, 16:34
- Репутация: 0
Re: Geotiff 16bit -> 8bit
Мне хотелось бы вести пакетную обработку файлов. Может такой конвертор есть в GDAL?
-
- Завсегдатай
- Сообщения: 410
- Зарегистрирован: 24 авг 2006, 17:35
- Репутация: 10
Re: Geotiff 16bit -> 8bit
Вроде "gdal_translate -scale -ot Byte".
-
- Участник
- Сообщения: 57
- Зарегистрирован: 25 янв 2009, 16:34
- Репутация: 0
Re: Geotiff 16bit -> 8bit
К сожалению, не помогло.manisha писал(а):Вроде "gdal_translate -scale -ot Byte".
-
- Активный участник
- Сообщения: 179
- Зарегистрирован: 05 июл 2009, 22:18
- Репутация: 47
Re: Geotiff 16bit -> 8bit
А в чем проблема?
Единственное, вам необходимо знать - активный диапазон значений яркости растра, как правило он составляет от 10-12 бит.
А затем делаете например, линейное масштабирование:
gdal_translate -ot Byte -scale 0 2048 0 255 input output (это для 11 бит),
gdal_translate -ot Byte -scale 0 1024 0 255 input output (это для 10 бит).
Если же вы хотите масштабировать не полный исходный диапазон, есть несколько вариантов, но придется писать алгоритм ручками...
1. Вычислить min max снимка и масштабировать в пределах вычисленных значений (аля auto-levels в Photoshop), контрастность можно регулировать сдвижением пороговых значений (тоже считается статистически).
2. Вычислить std и mean и установить пороговые значения влево и вправо от среднего на 2 или более std.
3. Сделать гамма коррекцию
4. Реализовать то что делают GeoEye и DigitalGlobe - алгоритм который называется DRA. На самом деле это просто смесь разных методов.
Единственное, вам необходимо знать - активный диапазон значений яркости растра, как правило он составляет от 10-12 бит.
А затем делаете например, линейное масштабирование:
gdal_translate -ot Byte -scale 0 2048 0 255 input output (это для 11 бит),
gdal_translate -ot Byte -scale 0 1024 0 255 input output (это для 10 бит).
Если же вы хотите масштабировать не полный исходный диапазон, есть несколько вариантов, но придется писать алгоритм ручками...
1. Вычислить min max снимка и масштабировать в пределах вычисленных значений (аля auto-levels в Photoshop), контрастность можно регулировать сдвижением пороговых значений (тоже считается статистически).
2. Вычислить std и mean и установить пороговые значения влево и вправо от среднего на 2 или более std.
3. Сделать гамма коррекцию
4. Реализовать то что делают GeoEye и DigitalGlobe - алгоритм который называется DRA. На самом деле это просто смесь разных методов.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Geotiff 16bit -> 8bit
Возможно, сделать дамп тэгов, потом воспользоваться imagemagick, а потом вернуть тэги из дампа (geotifcp)?
У IM много всяких возможностей.
convert input.tiff -depth 8 output.tiff
конвертит из 16 в 8 бит "тупо", парметр -normalize добавит простую нормализацию гистограммы, а -equalize - более продвинутую эквализацию.
http://www.imagemagick.org/Usage/color/#histogram
У IM много всяких возможностей.
convert input.tiff -depth 8 output.tiff
конвертит из 16 в 8 бит "тупо", парметр -normalize добавит простую нормализацию гистограммы, а -equalize - более продвинутую эквализацию.
http://www.imagemagick.org/Usage/color/#histogram
-
- Участник
- Сообщения: 57
- Зарегистрирован: 25 янв 2009, 16:34
- Репутация: 0
Re: Geotiff 16bit -> 8bit
А при этом мета теги геотифа пропадут?ericsson писал(а): convert input.tiff -depth 8 output.tiff
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Geotiff 16bit -> 8bit
Пропадут, конечно. Для того, чтобы не пропали, предварительно нужно сделать дамп тэгов geotiff, например, утилитой listgeo http://trac.osgeo.org/geotiff/
Восстановить тэги после работы imagemagick из дампа - утилитой geotifcp
Восстановить тэги после работы imagemagick из дампа - утилитой geotifcp
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя