Корректное преобразование мультиспектральных растров в RGB с настроенной гистограммой: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
 
(не показано 15 промежуточных версий 3 участников)
Строка 1: Строка 1:
{{Статья|Черновик}}
{{Статья|Черновик}}
== '''Экспорт мультиспектральных растров в RGB''' ==
== Введение ==
В данной статье описывается способ сохранения изображения с настроенным отображением (измененной гистограммой) в новый файл с использованием ArcGIS. В большинстве случаев гистограмму растрового изображения при добавлении его в ГИС необходимо подстроить для улучшения отображения. Под подстройкой понимается процесс преобразования входных значений пикселей к виду отображения на экране компьютера. Наиболее часто используются следующие методы изменения гистограммы: изменение яркости, контраста, обрезка и растяжение на стандартное (среднеквадратичное) отклонение, ручное изменение функции преобразования и др. ГИС ArcGIS по-умолчанию применяет к изображению (в случае если посчитана статистика) метод растяжения два стандартных отклонения (95% пикселей) гистограммы. Это помогает обрезать (сбросить в 0 и 255) тонкие хвосты гистограммы и улучшить общую контрастность изображения.


<p style="text-align:justify">Как известно, в большинстве случаев растры спутниковых снимков в локальных ГИС мы просматриваем в режиме улучшения контраста путем растяжки гистограммы. ArcGIS, например, растягивает гистограмму по умолчанию, другие ГИС всегда имеют такую опцию, наиболее часто используется тип растяжки - стандартное (среднеквадратичное) отклонение с коэффициентом 2 .</p>
[[Файл:003.jpg |center|Свойства растрового слоя в ArcGIS]]


[[Файл:003.jpg |center|Свойства растрового слоя в ArcGIS]]<br />
== Постановка задачи ==


Если же растр открывать в графическом редакторе (просмотровщике), то видеть мы будем совершенно иную картину, так как при этом не происходит автоматического изменения контраста.
Если открывать растровое изображение в графическом редакторе, то отображение в нем, как правило, будет отличаться от того, что показывает ПО ГИС, так как графические пакеты автоматически не производят оптимизацию гистограммы изображения - каналы RGB формируются из исходных каналов снимка.
Спутниковый снимок ETM+ (устье р. Анабар, Якутия, каналы 5-4-3) без растяжки гистограммы (вверху) и с растяжкой гистограммы на основе расчета стандартного отклонения значений отображаемых каналов растра (внизу)<br />
[[Файл:00.jpg|center]]<br />
[[Файл:001.jpg|center]]<br />


<center>
<gallery caption="Спутниковый снимок ETM+ (устье р. Анабар, Якутия, каналы 5-4-3)" widths="300px" heights="300px">
Файл:00.jpg|исходная гистограмма
Файл:001.jpg|растяжение до 0-255 двух стандартных отклонений исходной гистограммы
</gallery>
</center>


<p style="text-align:justify">При подготовке спутниковой съемки для публикации в WEB возникла задача сохранения снимка в формате обычного RGB-растра. Такая же задача возникает часто и для подготовки снимков для просмотра вне ГИС-программ, но публикация в WEB имеет определенную специфику - необходимо корректное сохранение значений NoData, чтобы они, соответственно, могли быть сделаны невидимыми.<br>
При подготовке изображений спутниковой съемки для публикации может возникнуть задача сохранения снимка в формате обычного RGB-растра с уже измененной гистограммой. Такая задача возникает часто для подготовки снимков для просмотра вне ПО ГИС и необходимо корректное сохранение значений NoData, чтобы они, впоследствии могли бы быть сделаны невидимыми. Рассмотрим решение задачи сохранения снимка в формате обычного RGB-растра с использованием ГИС ArcGIS.
В ArcGIS имеется специальный инструмент для сохранения растра, загруженного в проект в виде отображаемого RGB - щёлкнув правой кнопкой на нужном растровом слое в TOC, и выбираем "Экспорт данных". В открывшемся диалоговом окне выбираем "Использовать метод отображения" "RGB"</p><br />
 
== Экспорт мультиспектральных растров в RGB с измененной гистограммой ==
В ArcGIS имеется специальный инструмент для сохранения растра, загруженного в проект в виде отображаемого RGB - щёлкнув правой кнопкой на нужном растровом слое в TOC, и выбираем "Экспорт данных". В открывшемся диалоговом окне выбираем "Использовать метод отображения" "RGB". При этом в выходной файл изображение будет сохранено с измененной гистограммой, она будет соответствовать текущей настройке гистограммы изображения.


[[Файл:002.jpg|center]]
[[Файл:002.jpg|center]]


Однако, как выяснилось, не все так просто как кажется - ряд НЕНУЛЕВЫХ значений экспортируемого растра после такого экспорта "сваливается" в NODATA, так что просмотр такого растра с отключенными значениями NODATA по крайней мере не эстетичен - водоемы уходят в "провал".   
Однако, все не так просто как кажется - ряд '''ненулевых''' (но близких к нулевым) значений экспортируемого растра после такого экспорта "сваливается" в 0, что очень критично для водоемов. Просмотр такого растра со включенной прозрачностью для значений NoData (как правило 0,0,0) по меньшей мере не эстетичен - водоемы уходят в "провал".   
 
[[Файл:004.jpg|center]]<br />
 
[[Файл:005.jpg|center]]<br />


<center>
<gallery widths="300px" heights="300px">
Файл:004.jpg|исходное RGB изображение
Файл:005.jpg|результат сохранения в файл с выставленным значением NoData равным 0 (в озерах просвечивает белый фон)
</gallery>
</center>


<p style="text-align:justify">При помощи инструмента "Инспектор пикселов", имеющегося в ArcGIS, удалось установить причину явления и устранить ее. <br />
Причину явления можно установить при помощи инструмента "Инспектор пикселов". Добавим его на панель инструментов - "Панели инструментов-Настройка-Команды-Растр" - вытягиваем обе кнопки на любую панель инструментов.
Выводим на панель инструментов инструмент "Инспектор пикселов" - "Панели инструментов-Настройка-Команды-Растр" - вытягиваем обе кнопки на любую панель инструментов.</p>


[[Файл:008.jpg|center]]
[[Файл:008.jpg|center]]


<p style="text-align:justify">При использовании инструмента слева от TOC появится таблица со значениями каналов растра, а сам курсор примет вид "палетки". Идем в район, где у нас "провалились" значения и смотрим, переключаясь между вкладками истинные и отображаемые в RGB с учетом растяжки значения видимых на экране каналов растра, и видим, что при растяжке гистограммы методом стандартного отклонения наиболее низкие значения каналов "срезались" в 0. А отключение фона в ArcGIS происходит не по отображаемым, а по исходным значениям каналов растра, поэтому мы и не видим этих провалов в отображении.</p>
При использовании инструмента слева от TOC появится таблица со значениями каналов растра, а сам курсор примет вид "палетки". Идем в район, где у нас "провалились" значения и смотрим их, переключаясь между вкладками истинные и отображаемые в RGB с учетом растяжки значения видимых на экране каналов растра. Видно, что при растяжении гистограммы наиболее низкие значения (другими словами наиболее черная вода) "свалились" в 0. Отключение же фона в ArcGIS происходит не по отображаемым, а по исходным значениям каналов растра, поэтому мы и не видим этих провалов сразу в отображении исходного изображения.


[[Файл:009.jpg|center]]
[[Файл:009.jpg|center]]<br />
{|
|[[Файл:006.jpg]]
|[[Файл:007.jpg]]
|}


<p style="text-align:justify">Избежать этого, как выяснилось, можно очень просто. Идем в свойства изображения - символы - гистограма, при этом растяжка по среднеквадратичному отклонению включена, и видим, что часть значений (и значительная!) оказалась срезанной. Просто сдвигаем этот узел гистограммы влево до 0. Подтверждаем изменения и "Инспектором пикселов" смотрим значения RGB. Цветовая картина на мониторе изменится крайне незначительно для целей просто визуальной публикации.</p><br />
<center>
<gallery widths="400px" heights="200px">
Файл:006.jpg|истинные значения пикселов
Файл:007.jpg|отображаемые (подстроенные) значения пикселов
</gallery>
</center>


Избежать этого эффекта очень просто. Идем в свойства изображения - символы - гистограмма, при этом растяжка по среднеквадратичному отклонению включена, и видим, что часть значений (и значительная!) оказалась сброшенной в 0. Сдвигаем этот узел гистограммы влево до 0. Подтверждаем изменения и "Инспектором пикселов" снова смотрим значения RGB. Цветовая картина на мониторе изменится крайне незначительно для целей просто визуальной публикации.


[[Файл:010.jpg|center]]<br />
[[Файл:010.jpg|center]]


[[Файл:012.jpg|center]]
[[Файл:012.jpg|center]]


<p style="text-align:justify">Как видно из таблицы RGB-пикселов, теперь в районе "провала" полностью нулевых значений нет ни в одном пикселе.  
Как видно из таблицы RGB-пикселов, теперь в районе "провала" полностью нулевых значений нет ни в одном пикселе.  
Теперь экспорт произойдет корректно, и значения NODATA (0,0,0) в выходном растре будут только там, где действительно нет данных. <br />
Теперь экспорт произойдет корректно, и значения NoData (0,0,0) в выходном растре будут только там, где нужно, то есть где действительно нет данных.
Правда, необходимо отметить, что, например, QGis значением NoData считает наличие значения "0" в ЛЮБОМ канале растра, поэтому, если просто выставить значение "Нет данных" как 0 - станут прозрачны пикселы, в которых есть 0 хотя бы в одном канале, а потому в этом поле настройкипрозрачности изображения надо оставить то значение, что есть, а выставить нули в значения всех 3 каналов - тогда отображение будет корректным.</p><br />
 
== Отображение в QGIS ==
Необходимо отметить, что некоторое ПО ГИС, например QGIS, по умолчанию делает прозрачным наличие значения NoData в '''любом''' канале растра. То есть, если выставить значение "Нет данных" равное нулю, то станут прозрачными все пиксели значение которых равно нулю в любом канале. Чтобы этого не происходило, в поле настройки прозрачности изображения, надо оставить изначальное значение, а нули выставлять в значения всех трех каналов. Таким образом, пиксели для которых значение NoData присутствует только в одном из каналов не будут прозрачными и отображение будет корректным.


[[Файл:013.jpg|center]]
[[Файл:013.jpg|center]]


<p style="text-align:justify">Автор благодарит Д.Барышникова (Bishop) за указание правильного направления решения проблемы.<br />
Автор благодарит Д.Барышникова (Bishop) за указание правильного направления решения проблемы.

Текущая версия от 19:42, 9 марта 2012

Эта страница является черновиком статьи.


Введение

В данной статье описывается способ сохранения изображения с настроенным отображением (измененной гистограммой) в новый файл с использованием ArcGIS. В большинстве случаев гистограмму растрового изображения при добавлении его в ГИС необходимо подстроить для улучшения отображения. Под подстройкой понимается процесс преобразования входных значений пикселей к виду отображения на экране компьютера. Наиболее часто используются следующие методы изменения гистограммы: изменение яркости, контраста, обрезка и растяжение на стандартное (среднеквадратичное) отклонение, ручное изменение функции преобразования и др. ГИС ArcGIS по-умолчанию применяет к изображению (в случае если посчитана статистика) метод растяжения два стандартных отклонения (95% пикселей) гистограммы. Это помогает обрезать (сбросить в 0 и 255) тонкие хвосты гистограммы и улучшить общую контрастность изображения.

Свойства растрового слоя в ArcGIS

Постановка задачи

Если открывать растровое изображение в графическом редакторе, то отображение в нем, как правило, будет отличаться от того, что показывает ПО ГИС, так как графические пакеты автоматически не производят оптимизацию гистограммы изображения - каналы RGB формируются из исходных каналов снимка.

При подготовке изображений спутниковой съемки для публикации может возникнуть задача сохранения снимка в формате обычного RGB-растра с уже измененной гистограммой. Такая задача возникает часто для подготовки снимков для просмотра вне ПО ГИС и необходимо корректное сохранение значений NoData, чтобы они, впоследствии могли бы быть сделаны невидимыми. Рассмотрим решение задачи сохранения снимка в формате обычного RGB-растра с использованием ГИС ArcGIS.

Экспорт мультиспектральных растров в RGB с измененной гистограммой

В ArcGIS имеется специальный инструмент для сохранения растра, загруженного в проект в виде отображаемого RGB - щёлкнув правой кнопкой на нужном растровом слое в TOC, и выбираем "Экспорт данных". В открывшемся диалоговом окне выбираем "Использовать метод отображения" "RGB". При этом в выходной файл изображение будет сохранено с измененной гистограммой, она будет соответствовать текущей настройке гистограммы изображения.

002.jpg

Однако, все не так просто как кажется - ряд ненулевых (но близких к нулевым) значений экспортируемого растра после такого экспорта "сваливается" в 0, что очень критично для водоемов. Просмотр такого растра со включенной прозрачностью для значений NoData (как правило 0,0,0) по меньшей мере не эстетичен - водоемы уходят в "провал".

Причину явления можно установить при помощи инструмента "Инспектор пикселов". Добавим его на панель инструментов - "Панели инструментов-Настройка-Команды-Растр" - вытягиваем обе кнопки на любую панель инструментов.

008.jpg

При использовании инструмента слева от TOC появится таблица со значениями каналов растра, а сам курсор примет вид "палетки". Идем в район, где у нас "провалились" значения и смотрим их, переключаясь между вкладками истинные и отображаемые в RGB с учетом растяжки значения видимых на экране каналов растра. Видно, что при растяжении гистограммы наиболее низкие значения (другими словами наиболее черная вода) "свалились" в 0. Отключение же фона в ArcGIS происходит не по отображаемым, а по исходным значениям каналов растра, поэтому мы и не видим этих провалов сразу в отображении исходного изображения.

009.jpg


Избежать этого эффекта очень просто. Идем в свойства изображения - символы - гистограмма, при этом растяжка по среднеквадратичному отклонению включена, и видим, что часть значений (и значительная!) оказалась сброшенной в 0. Сдвигаем этот узел гистограммы влево до 0. Подтверждаем изменения и "Инспектором пикселов" снова смотрим значения RGB. Цветовая картина на мониторе изменится крайне незначительно для целей просто визуальной публикации.

010.jpg
012.jpg

Как видно из таблицы RGB-пикселов, теперь в районе "провала" полностью нулевых значений нет ни в одном пикселе. Теперь экспорт произойдет корректно, и значения NoData (0,0,0) в выходном растре будут только там, где нужно, то есть где действительно нет данных.

Отображение в QGIS

Необходимо отметить, что некоторое ПО ГИС, например QGIS, по умолчанию делает прозрачным наличие значения NoData в любом канале растра. То есть, если выставить значение "Нет данных" равное нулю, то станут прозрачными все пиксели значение которых равно нулю в любом канале. Чтобы этого не происходило, в поле настройки прозрачности изображения, надо оставить изначальное значение, а нули выставлять в значения всех трех каналов. Таким образом, пиксели для которых значение NoData присутствует только в одном из каналов не будут прозрачными и отображение будет корректным.

013.jpg

Автор благодарит Д.Барышникова (Bishop) за указание правильного направления решения проблемы.