Одна индексированная палитра для схожих по цвету - решение?

Ответить
ttestt
Участник
Сообщения: 82
Зарегистрирован: 22 сен 2008, 20:41
Репутация: 1

Одна индексированная палитра для схожих по цвету - решение?

Сообщение ttestt » 29 сен 2009, 13:49

Все действия производятся с помощью imagemagick

выделить палитру с трех картинок
convert 01.tif -colors 255 -unique-colors 01pal.tif
convert 02.tif -colors 255 -unique-colors 02pal.tif
convert 03.tif -colors 255 -unique-colors 03pal.tif

слить палитры в одну картину
montage 01pal.tif 02pal.tif 03pal.tif -geometry 255x1 010203palsrc.tif

сузить общую палитру до 255 цветов
convert 010203palsrc.tif -colors 255 -unique-colors 010203pal.tif

этой палитрой преобразовать исходные картинки
convert 01.tif -colors 255 -map 010203pal.tif 01p255с.tif
convert 02.tif -colors 255 -map 010203pal.tif 02p255с.tif
convert 03.tif -colors 255 -map 010203pal.tif 03p255с.tif

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: Одна индексированная палитра для схожих по цвету - решение?

Сообщение Mavka » 29 сен 2009, 14:33

Если через утилиты GDAL, то берем один "представительный" растр (или склеиваем несколько).
Его переводим его в палитру 255:

Код: Выделить всё

rgb2pct.py ^
    -n 255 ^
    -of GTiff ^
    etalon.tif palette.tif
Получили растр palette.tif. А по его палитре преобразуем остальные:

Код: Выделить всё

rgb2pct.py ^
    -pct palette.tif ^
    -of GTiff ^
    source.tif output.tif
Цветов 255. Для nodata используется 256-й (если считать от 0, то - 255-й). Т.к. rgb2pct с параметром "-pct" 256-й цвет не задает, то его в редакторе (GIMP, Photoshop, etc) меняем на какой-нибудь контрастный - например, кислотно-зеленый (чтобы он нигде не использовался). И потом его можно использовать, например:
gdalwarp -dstnodata 255.

P.S. Знак "^" - конец строки для cmd-файлов в windows, для shell-скриптов в linux он будет "\".
лангольеры под окном жрали время ом-ном-ном

Ответить

Вернуться в «GDAL/OGR»

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

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