Geotiff 16bit -> 8bit

Программы и алгоритмы для обработки данных дистанционного зондирования: ERDAS, ENVI и другие.
Ответить
XdenisX
Участник
Сообщения: 57
Зарегистрирован: 25 янв 2009, 16:34
Репутация: 0

Geotiff 16bit -> 8bit

Сообщение XdenisX » 29 окт 2009, 14:38

Добрый день!

Подскажите пожалуйста как конвертировать данные в geotiff с пикселом 16bit в unsigned 8bit?

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Geotiff 16bit -> 8bit

Сообщение Boris » 29 окт 2009, 14:59

А что у вас есть? Для программ обработки ДЗЗ - это стандартная функция.
Фотошоп читает 16 bit. Правда при сохранении "убивает" гео-теги - их надо сохранять и восстанавливать отдельно. Но в переводе 16 -> 8, 90% труда или "ума" составляет приведение гистограммы, а это уже отдельная работа, особенно для многоканальных изображений.

XdenisX
Участник
Сообщения: 57
Зарегистрирован: 25 янв 2009, 16:34
Репутация: 0

Re: Geotiff 16bit -> 8bit

Сообщение XdenisX » 29 окт 2009, 16:37

Мне хотелось бы вести пакетную обработку файлов. Может такой конвертор есть в GDAL?

manisha
Завсегдатай
Сообщения: 410
Зарегистрирован: 24 авг 2006, 17:35
Репутация: 10

Re: Geotiff 16bit -> 8bit

Сообщение manisha » 29 окт 2009, 17:20

Вроде "gdal_translate -scale -ot Byte".

XdenisX
Участник
Сообщения: 57
Зарегистрирован: 25 янв 2009, 16:34
Репутация: 0

Re: Geotiff 16bit -> 8bit

Сообщение XdenisX » 31 окт 2009, 18:00

manisha писал(а):Вроде "gdal_translate -scale -ot Byte".
К сожалению, не помогло.

pendduduk
Активный участник
Сообщения: 179
Зарегистрирован: 05 июл 2009, 22:18
Репутация: 47

Re: Geotiff 16bit -> 8bit

Сообщение pendduduk » 31 окт 2009, 23:35

А в чем проблема?
Единственное, вам необходимо знать - активный диапазон значений яркости растра, как правило он составляет от 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. На самом деле это просто смесь разных методов.

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Geotiff 16bit -> 8bit

Сообщение ericsson » 18 ноя 2009, 23:24

Возможно, сделать дамп тэгов, потом воспользоваться imagemagick, а потом вернуть тэги из дампа (geotifcp)?
У IM много всяких возможностей.
convert input.tiff -depth 8 output.tiff
конвертит из 16 в 8 бит "тупо", парметр -normalize добавит простую нормализацию гистограммы, а -equalize - более продвинутую эквализацию.
http://www.imagemagick.org/Usage/color/#histogram

XdenisX
Участник
Сообщения: 57
Зарегистрирован: 25 янв 2009, 16:34
Репутация: 0

Re: Geotiff 16bit -> 8bit

Сообщение XdenisX » 23 ноя 2009, 01:23

ericsson писал(а): convert input.tiff -depth 8 output.tiff
А при этом мета теги геотифа пропадут?

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Geotiff 16bit -> 8bit

Сообщение ericsson » 24 ноя 2009, 20:45

Пропадут, конечно. Для того, чтобы не пропали, предварительно нужно сделать дамп тэгов geotiff, например, утилитой listgeo http://trac.osgeo.org/geotiff/
Восстановить тэги после работы imagemagick из дампа - утилитой geotifcp

Ответить

Вернуться в «Обработка ДДЗ»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость