Цветовой баланс и публикация большого количества изображений с высоким разрешением в геосервер

11

У меня есть большое количество изображений RapidEye (+300 Гб), которые я хочу использовать в качестве базовой карты для онлайн-приложения. До сих пор мне удавалось служить им в качестве ImagePyramid в геосервере, выполнив шаги, показанные в презентации под названием «Геосервер на стероидах». Проблема в том, что я не смог правильно настроить цветовой баланс, поэтому при просмотре всего набора данных мозаика выглядит очень плохо, но при увеличении масштаба она становится лучше (фотографии ниже).

Мой процесс:

  1. Конвертировать все изображения в 8 бит, EPSG 4326, кубическая интерполяция с использованием GDAL
  2. Создайте виртуальный растр gdal со всеми изображениями (gdalbuildvrt)
  3. Создайте пирамиду изображения (gdal_retile со сжатием и геотифлингом) и опубликуйте на геосервере (используя растяжение гистограммы в стиле слоя)

Любые советы о том, как улучшить процесс и улучшить цветовой баланс?

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь

Даниил
источник

Ответы:

6

Я верю, что получил это.

При каждом преобразовании в 8-битное изображение гистограммы стандартного отклонения + 2 на каждом изображении RapidEye было изменено.

Я использовал скрипт Python для определения минимального, максимального, среднего и SD-изображения. Затем я установил значение среднего значения - 2SD (или мин. Изображения, в зависимости от того, что больше) на 2, а среднее значение + 2SD (или макс.) - 254. И, чтобы быть в безопасности, исходное значение нуля в изображении было установлено равным 1 и 2 ^ 16 установлен на 255. NoData был установлен на 0.

Это векторы передаточной функции:

original image values = [0, mean-2SD, mean+2SD, 65536]
rescaled values = [1 2, 254, 255]

Ниже приведены некоторые снимки экрана. Проблемы, которые я должен решить сейчас:

  1. Удалить черную границу вокруг изображения пирамиды
  2. Получите лучшее изображение при увеличении в полной мере. Теперь он выглядит как старый телевизор, настроенный не на тот канал

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь

Редактировать
Я сейчас разместил код на GitHub. Прошло много времени с тех пор, как я использовал это. Код немного грязный, как и хранилище. Но все равно должно работать.
https://github.com/dvictori/rapideye_hist2sd

Даниил
источник
Браво, сэр. Вы получаете 10 из 10 за это. Что касается вашего второго беспокойства (лучше выглядит при увеличении масштаба), не могли бы вы просто использовать менее детализированные изображения, такие как LandSat или ASTER? Я думаю, что грубые изображения будут выглядеть лучше, когда уменьшено. ... как для твоего первого беспокойства, я все еще пытаюсь взломать этот орех сам. Я хотел бы увидеть подробное описание того, как вы это сделали, включая сценарий py, если вы готовы поделиться им. Есть ли шанс, что вы планируете представить свой подход в любом месте?
elrobis
Я не планировал представлять это или делать рецензию. Но теперь, когда вы упомянули, кто знает. Любые предложения относительно соответствующих средств массовой информации для представления этого? Что касается скрипта py, вы можете скачать его с dropbox.com/s/1hfobfp9ymtku2n/rapideye_hist2sd.py Однако, будьте осторожны . Я считаю себя дрянным программистом, и я уверен, что моя программа может использовать множество улучшений.
Даниэль
2
Я изменил ссылку для скачивания из приведенного выше комментария. Если вы хотите посмотреть на код Python, который я использовал, вы можете загрузить его с goo.gl/ePEc7G
Daniel
Спасибо @Daniel. Я веду блог, где выкладываю инструкции для таких вещей. Если я наткнусь на что-то, что было нелегко и для которого я не мог найти большую помощь в Интернете, я сделаю сообщение в блоге по нескольким причинам. Во-первых, я предполагаю, что мне нужно будет как-то повторить задачу, поэтому, если я объединю шаги в сообщение, я смогу легко просмотреть их позже. Во-вторых, я полагаю, что всегда есть шанс, что кто-то там захочет сделать что-то подобное, и они могут извлечь выгоду из этой должности. То, что вы сделали здесь, очень достойно блога, даже если это ваш единственный пост на некоторое время. :)
elrobis
Это удивительная идея, и я пытаюсь адаптировать ее для меньшего кадра, 3-х полосной камеры с 8-битной и 8-битной, но у меня возникли некоторые проблемы при ее реализации. Как мне направить каталог входных изображений в этот скрипт? Откуда их вызывают? Я предполагаю, что все это должно выполняться через геосервер, но могу ли я это разорвать и запустить автономно?
Уэс
4

Даниэль, это изображения разных сезонов? Или времена дня? Если они разные сезоны, то получить хороший цветовой баланс может быть довольно сложно. Но если они различаются по времени суток, то применение поправки на угол солнца может заметно помочь. Хорошая аппроксимация первого угла для солнечного угла заключается в умножении пикселей на 1,0 / cos (angle_of_sun_off_directly_above). Так что не нужно регулировать, если солнце находится прямо над вами, увеличиваясь до ... ну бесконечности по мере приближения рассвета / заката.

В прошлом у меня были плохие результаты при использовании сопоставления гистограмм между сценами в перекрывающихся областях для сборки больших мозаик, потому что вы получаете странные эффекты дрейфа по мозаике. Я думаю, что более полезным подходом может быть какое-то сопоставление гистограммы с целевым изображением основного цвета (возможно, привлекательная мозаика местности). Мне также интересно, как решить эту проблему. Чарли Лойд из MapBox тоже может подумать.

Фрэнк Вармердам
источник
Фрэнк, изображения в основном из сухого сезона, когда облачность низкая. Но есть изображения разных месяцев, таких как август, ноябрь и т. Д. Я сейчас пытаюсь разбить изображения на маленькие блоки и сделать мозаику для каждого. Даст вам знать, как это получается. Я также написал скрипт на Python для сопоставления CDF, и он отлично работает (не очень), когда у меня небольшое количество изображений (20), но когда я получаю большое количество, одно из изображений обязательно должно иметь значения вне моего диапазон эталонного изображения, и тогда все перестает работать. Возможно, придется подумать о лучшем способе выбора эталонного изображения.
Даниэль
0

Иногда я использовал компоновщик изображений OSSIM с сопоставлением гистограмм для создания цветовых сбалансированных мозаик. В руководстве по компоновщику изображений приведен пример http://download.osgeo.org/ossim/docs/pdfs/ImageLinker_Tutorial.pdf Тем не менее, компоновщик изображений не поддерживается активно, и я не знаю, работает ли он больше. Ossim Geocell - текущая программа, но пользовательских документов по этому поводу не так много. Я помню, что для достижения хорошего результата я сначала поочередно обрабатывал свои сцены Landsat с помощью OpenEV, применяя растягивание LUT, чтобы изображения визуально выглядели примерно одинаково. Тогда OSSIM было легче сделать окончательное совпадение. Конечный продукт выглядел примерно так же хорошо, как тот, который я сделал с помощью мозаики ER Mapper.

user30184
источник