С помощью комбинации инструментов, не относящихся к matlab / non-native (GDAL), а также собственных инструментов (geoimread), я могу получать данные Sentinel-2A как по отдельным полосам, так и по RGB-изображению, используя слияние gdal.Я застрял в точке, где использование
imshow(I, [])
Создает черное изображение без видимого сигнала.Диапазон значений интенсивности на изображении составляет 271 - 4349. Я знаю, что на изображении хороший сигнал, потому что, когда я делаю:
bit_depth = 2^15;
I = swapbytes(I);
[I_indexed, color_map] = rgb2ind(I, bit_depth);
I_double = im2double(I_indexed, 'indexed');
ax1 = figure;
colormap(ax1, color_map);
image(I_double)
, то есть индексирую изображение, собираю карту цветов, устанавливаю карту цветови затем вызываю функцию image
, я получаю сходство с областью, которую я исследую (хотя и очень странного цвета)
В настоящее время я думаю, стоит ли мне попробовать:
Найти низкоуровневое описание данных Sentinel-2A, выполнить масштабирование / коррекцию
Использовать набор инструментов, возможно, этот.
Возможно, отрегулируйте настройки вывода на одном из предыдущих этапов, связанных с GDAL. Комментарии или предложения приветствуются.
Базовая схема масштабирования:
% convert image to double
I_double = im2double(I);
% scaling
max_intensity = max(I_double(:));
min_intensity = min(I_double(:));
range_intensity = max_intensity - min_intensity;
I_scaled = 2^16.*((I_double - min_intensity) ./ range_intensity);
% display
imshow(uint16(I_scaled))
, отмечаяВажность приведения к uint16
с double
для imshow
.