Landstat 5: Bands 3,2,1 = Синее изображение (

Программы и алгоритмы для обработки данных дистанционного зондирования: ERDAS, ENVI и другие.
Ответить
destr
Новоприбывший
Сообщения: 3
Зарегистрирован: 17 май 2012, 13:35
Репутация: 0

Landstat 5: Bands 3,2,1 = Синее изображение (

Сообщение destr » 17 май 2012, 13:45

Здравствуйте!

Пытаюсь получить true color снимок по результатам ДДЗ Landstat 5, так уж сложилось, что делать мне надо это самому, без ENVI и т.д.
В QT Creator попробовал скомбинировать 3, 2 и 1 диапазоны, но вместо изображения в естественных цветах я получаю изображение в оттенках синего. Может быть у кого-нибудь есть идеи почему?

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

        QImage R(bands[2]); // band 3 - RED
        QImage G(bands[1]); // band 2 - Green
        QImage B(bands[0]);  // band 1 - Blue
        QImage RGB(R.width(), R.height(), QImage::Format_RGB32);
        int w = RGB.width();
        int h = RGB.height();

        uchar *Rs, *Gs, *Bs;
        QRgb* RGBs;

        for (int y = 0; y < h; ++y) {
            Rs = R.scanLine(y);
            Gs = G.scanLine(y);
            Bs = B.scanLine(y);
            RGBs = (QRgb *)RGB.scanLine(y);
            for (int x = 0; x < w; ++x) {
                RGBs[x] = qRgb( qRed(R.color(Rs[x])),
                                qGreen(G.color(Gs[x])),
                                qBlue(B.color(Bs[x])) );
            }
        }
Заранее спаибо,
Максим.

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Landstat 5: Bands 3,2,1 = Синее изображение (

Сообщение novia » 17 май 2012, 14:07

вы используете сырые значения, хранящиеся в TIFF? или приводите их к диапазону 0-255 для визуализации с использованием той или иной растяжки?
- если первое (судя по приведенному коду), то неудивительно что цвета "не попали"
- используйте растяжку, хотя бы линейную:
КРАСНЫЙ = ( VALUE-Min(Band3)) / ( Max( Band3 )-Min(Band3) ) - синтаксис условный
и так для каждого канала
понравилось? жми палец вверх :!:

destr
Новоприбывший
Сообщения: 3
Зарегистрирован: 17 май 2012, 13:35
Репутация: 0

Re: Landstat 5: Bands 3,2,1 = Синее изображение (

Сообщение destr » 17 май 2012, 14:35

Извиняюсь, может быть за глупый вопрос, но, min и max, это те, что в файле метаданных? А так да, я брал просто из tiff серые значения.
>less ./Inst/GIS/landstat/L5143020_02020110620_MTL.txt
.....
GROUP = MIN_MAX_RADIANCE
LMAX_BAND1 = 193.000
LMIN_BAND1 = -1.520
LMAX_BAND2 = 365.000
LMIN_BAND2 = -2.840
LMAX_BAND3 = 264.000
LMIN_BAND3 = -1.170
LMAX_BAND4 = 221.000
LMIN_BAND4 = -1.510
LMAX_BAND5 = 30.200
LMIN_BAND5 = -0.370
LMAX_BAND6 = 15.303
LMIN_BAND6 = 1.238
LMAX_BAND7 = 16.500
LMIN_BAND7 = -0.150
END_GROUP = MIN_MAX_RADIANCE
.....

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Landstat 5: Bands 3,2,1 = Синее изображение (

Сообщение novia » 17 май 2012, 17:12

а теперь вставьте сюда:
Rs = R.scanLine(y);
Gs = G.scanLine(y);
Bs = B.scanLine(y);

то, что я написал выше, используя Мах и Мин и метаданных.
понравилось? жми палец вверх :!:

destr
Новоприбывший
Сообщения: 3
Зарегистрирован: 17 май 2012, 13:35
Репутация: 0

Re: Landstat 5: Bands 3,2,1 = Синее изображение (

Сообщение destr » 18 май 2012, 21:16

Спасибо, всё ок.

Ответить

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

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

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