Расчет среднего значения пикселей в envi

Программы и алгоритмы для обработки данных дистанционного зондирования: ERDAS, ENVI и другие.
Ответить
Борисфенка
Интересующийся
Сообщения: 25
Зарегистрирован: 26 окт 2013, 19:59
Репутация: 0

Расчет среднего значения пикселей в envi

Сообщение Борисфенка » 17 фев 2015, 21:59

Добрый день! интересует вопрос. Есть файл с 17 каналами. каждый канал несет одинаковый вид инфо за конкретную дату (допустим какой-то индекс).нужно взять среднее значения с 17 каналов для каждого пикселя. Задача усложняется, тем что в некоторых каналах есть так сказать "выпавшие" пиксели с ложными значениями, но они (пиксели) в разных местах. То есть, например, 1 пиксель в 15 каналах имеет "правильное" значение и в 2 - "неправильное". Это неправильное значение конкретно определенно - 100. Таким образом,если значение пикселя в конкретном канале -100 , его нужно исключить с расчета и использовать только остальные 14. Вот думаю, есть ли возможность реализовать данное условие в Math bands?

URIIT
Участник
Сообщения: 70
Зарегистрирован: 16 апр 2012, 08:33
Репутация: 16

Re: Расчет среднего значения пикселей в envi

Сообщение URIIT » 18 фев 2015, 07:26

Сначала для каждого канала выставляем значение 100 в ноль:

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

b1*(b1 ne 100)
Потом просто суммируем все каналы и делим на их количество:

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

(b1 +  b2 + b3...) / 17

Борисфенка
Интересующийся
Сообщения: 25
Зарегистрирован: 26 окт 2013, 19:59
Репутация: 0

Re: Расчет среднего значения пикселей в envi

Сообщение Борисфенка » 18 фев 2015, 11:16

спасибо за ответ! Вы наверно в первой формуле имели ввиду

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

(b1 eq 100)*0
но , тогда мы включаем этот ноль в расчет и эти нули приравниваются к "правильному" значению, что не есть таким, потому что по сути эти пиксели никакой инфо не несут, а каждый ноль играет роль в правильности расчета поскольку от него зависит знаменатель в формуле среднего значения. + ко всему в "правильных" значениях есть и отрицательные (меньше ноля), по этому результат будет мягко говоря не точным. Мне бы именно задать условия чтобы полностью исключить пиксели с "неправильными" значениями, исключая их из общего количества (17) каналов при расчете среднего.

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Расчет среднего значения пикселей в envi

Сообщение gamm » 18 фев 2015, 11:23

Борисфенка писал(а):Вы наверно в первой формуле имели ввиду ...
вы оба правы :mrgreen:
создайте новый слой sum17

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

sum17=(b1 ne 100)+(b2 ne 100)+(b3 ne 100)+...
и делите на него вместо 17 (или впишите это в формулу), и будет вам щастье

Борисфенка
Интересующийся
Сообщения: 25
Зарегистрирован: 26 окт 2013, 19:59
Репутация: 0

Re: Расчет среднего значения пикселей в envi

Сообщение Борисфенка » 18 фев 2015, 15:45

gamm писал(а): создайте новый слой sum17

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

sum17=(b1 ne 100)+(b2 ne 100)+(b3 ne 100)+...
Вот это то к чему я не додумалась :oops: . Значит как я решила эту задачу (может кому-то интересно будет):
1. Создала новый слой sum17 (смотр. выше)
2. Перевела 100 в 0 ( изначально оно так и было , сотку сделала чтобы ноль не мешал визуальному восприятию "картинки", учитывая, что значения от - до +, но можно просто вместо встроенной grayscale обозначит ноль конкретным цветом)
3. Просуммировала все 17 каналов ( чтоб не прописывать в Math bands делала через : Basic tools - Statistic - Sum Data bands)
4. И напоследок просто поделила файл с суммой на сделанный в (1) sum17.
Все вышло правильно - проверяла вручную на нескольких выбранных пикселях. Спасибо за советы!!!

maxim02
Новоприбывший
Сообщения: 4
Зарегистрирован: 10 фев 2011, 16:18
Репутация: 0

Re: Расчет среднего значения пикселей в envi

Сообщение maxim02 » 21 мар 2016, 14:15

3. Просуммировала все 17 каналов ( чтоб не прописывать в Math bands делала через : Basic tools - Statistic - Sum Data bands)
Прошу прощения, не оч разбираюсь в ENVI, а разве Sum Data bands суммирует каналы? Из описания похоже, что функция работает с пикселами в одном канале. У меня вот схожая задача - рассчитать СКО для каждого пиксела из набора 28 идентичных по размеру изображений. Пока так и не понял как мне автоматизировать процесс (( Прошу помощи у форумчан.

alexandr cherepanov
Гуру
Сообщения: 534
Зарегистрирован: 30 ноя 2006, 13:31
Репутация: 116
Откуда: Moscow

Re: Расчет среднего значения пикселей в envi

Сообщение alexandr cherepanov » 21 мар 2016, 17:40

Что выберите, то и посчитает.
ENVI calculates the various statistics as follows, where xj is the value of a pixel for band j and N = number of bands
SumDataBands

Ответить

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

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

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